[英]Python 3.9 sockets issue sending data to client sockets
我一直在使用套接字和 tkinter 在 python 中创建一个聊天室应用程序。 每当我尝试向服务器发送消息时,都会收到以下错误:
不允许发送或接收数据的请求,因为未连接套接字并且(当使用 sendto 调用在数据报套接字上发送时)未提供地址
我不确定是什么导致了这个问题。
代码:
print("Sending message from server")
for clientKey in data.sockets.keys():
data.sockets[clientKey]["socket"].send(bytes(f"{data.sockets['server']['username']}: {message}", "utf-8"))
log(f"{data.sockets['server']['username']}: {message}")
print("Sent message from server")
程序到达第一个打印语句。
对于上下文,我有一个 tkinter 文本小部件和 function log(text)
只是将文本插入到小部件中。 它与套接字模块无关。 对于更多上下文,这是data
class 中客户信息的样子:
data.sockets["server"] = {"socket": sock,
"username": "Host",
"thread": threading.Thread(target = receiveMessages, daemon = True)}
data.sockets["server"]["thread"].start()
这是服务器的信息,但客户端的布局相同。
问题是我从未创建过if clientKey != "server"
,这意味着每次我尝试从服务器发送消息时,它都会尝试向服务器发送消息,这显然是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.