问题
如何修复我的程序以使其始终连接套接字?另外,请测试您的代码。我已经看到了很多关于这个的答案,但没有一个有效。
非常感谢你的帮助。
背景
有一段时间,我一直在开发一个通过 LAN 发送消息的程序。我一直在努力将我对 GUI 和套接字的知识整合到这个项目中。但是,无论我做什么,套接字都无法保持连接。
我已经问了很多关于这个的问题,但无论如何我都无法找到正确的解决方法。我相信这是我的错——我是自学成才的,也许没有问过正确的问题。这一次,我选择了笼统的陈述;请原谅我缺乏技巧,但这似乎是目前最好的方法。这是我在粘贴箱上的代码的链接。我在下面列出了最有可能出现问题的部分。
错误信息
('localhost', 1234)
Socket created
Socket bind complete
Socket now listening
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1410, in __call__
return self.func(*args)
File "/Volumes/XXMBABANEXX'S USB/Python Programs/Sockets/IM Project/Server/Functions/Simple Server.py", line 148, in <lambda>
command = lambda: send_msg(s,message))
File "/Volumes/XXMBABANEXX'S USB/Python Programs/Sockets/IM Project/Server/Functions/Simple Server.py", line 82, in send_msg
conn.sendall(my_message)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 57] Socket is not connected
相关代码
由于错误消息表明我的send_msg
功能有问题,因此我决定将其包含在下面。
def send_msg(conn, message):
"""Send Messages"""
#Send some data to the remote server
my_message = message.get("0.0", END)
#set the whole string
conn.sendall(my_message)
非常感谢您的所有帮助。这个问题困扰了我好几个月,我拒绝放手。