我正在设置聊天室,这是服务器代码
我是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调用的数据报套接字时,未连接套接字,并且未提供地址。发送或接收数据的请求已取消