发生异常:OSError [WinError 10057]

时间:2019-07-25 14:27:35

标签: python-3.x

我正在设置聊天室,这是服务器代码

我是python newbe,我尝试了很多方法,但没有人起作用。对于这么长的代码,我感到抱歉,但是我不知道错误在哪里。

import socket
import threading
import sys
import time as t



class Server:

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    connections = []

    def __init__(self):

        HOST = "192.168.178.7"
        port = 10001

        self.connections.append(self.s)

        try:
            self.s.bind((HOST, port))
            self.s.listen()
            print(f'Server creato. IP: {HOST}:{port}')

        except:
            print("Impossivle to run")
            return  




        while True:

            conn, client_adress  = self.s.accept()
            messaggio = "Hello"
            messaggio = messaggio.encode()
            conn.send(messaggio)
            print(f'New Client: {client_adress}')
            self.connections.append(conn)
            print(self.connections)

            cT = threading.Thread(target = self.run, args=(client_adress, conn))
            cT.daemon = True
            cT.start() 






    def run(self, client_adress, conn):


        while True:

            try:
                data = conn.recv(4096)
                dataD = data.decode('utf-8')
                print(f'{client_adress} -- {dataD}')

                sT = threading.Thread( target= self.sender, args= (data, conn))
                sT.daemon = False
                sT.start()
                sT.join()

            except:
                print(f"Conessione persa da: {client_adress}")
                self.connections.remove(conn)
                conn.close()     
                return False



    def sender(self, data, conn):

        for c in self.connections:
            if (c == conn):
                continue
            else:
                c.send(data)

c = Server()

我不知道为什么我无法将数据发送到连接(conn)

错误消息:

操作系统错误 [WinError 10057]发送使用sendto调用的数据报套接字时,未连接套接字,并且未提供地址。发送或接收数据的请求已取消

0 个答案:

没有答案