Python,套接字错误:[Errno 111]尝试在同一文件中创建2台服务器时
我必须使用python套接字设置两个组之间的组通信。每个组都有一个组长,该组长充当组中其他成员的服务器,以便在组内传递消息。两位组长还需要沟通以传递组间信息 我的程序正在处理组消息的传输。然而,为了传输组间消息,我在每个leader(服务器)上创建了一个新线程,并将一个leader作为客户端,另一个作为客户端 问题:我的问题是,在服务器2尝试连接到服务器1的位置,我收到了一个“[Errno 111]Connection-rejected”错误 代码(服务器1)组间MsgSender函数:Python,套接字错误:[Errno 111]尝试在同一文件中创建2台服务器时,python,network-programming,Python,Network Programming,我必须使用python套接字设置两个组之间的组通信。每个组都有一个组长,该组长充当组中其他成员的服务器,以便在组内传递消息。两位组长还需要沟通以传递组间信息 我的程序正在处理组消息的传输。然而,为了传输组间消息,我在每个leader(服务器)上创建了一个新线程,并将一个leader作为客户端,另一个作为客户端 问题:我的问题是,在服务器2尝试连接到服务器1的位置,我收到了一个“[Errno 111]Connection-rejected”错误 代码(服务器1)组间MsgSender函数: int
interGrpSock = socket.socket()
interGrpSock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
host = socket.gethostname()
port = 12349
interGrpSock.bind((host, port))
s.listen(1)
clientSock, addr = s.accept()
# The other server has connected, handle sending messages
while(len(interGroupMsgs) > 0):
msg = interGroupMsgs.pop(0)
clientSock.send(msg);
ss = socket.socket()
host = socket.gethostname()
port = 12349
try:
ss.connect((host, port))
代码(服务器2)组间MsgSender函数:
interGrpSock = socket.socket()
interGrpSock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
host = socket.gethostname()
port = 12349
interGrpSock.bind((host, port))
s.listen(1)
clientSock, addr = s.accept()
# The other server has connected, handle sending messages
while(len(interGroupMsgs) > 0):
msg = interGroupMsgs.pop(0)
clientSock.send(msg);
ss = socket.socket()
host = socket.gethostname()
port = 12349
try:
ss.connect((host, port))
创建新线程的代码(两台服务器相同):
注意:这两台服务器都已作为其他组成员的服务器运行
提前感谢您的帮助。JayP在上面的评论中给出的答案是代码中的一个简单问题。由于我复制了代码,但没有正确地检查它:( 服务器1代码应为:
interGrpSock.bind((host, port))
interGrpSock.listen(1) /* Instead of s.listen(1) here */
再次感谢Jay p两台服务器都在同一台主机上运行吗?是的,实际上都在本地主机上。在服务器2尝试连接之前,服务器1是否开始侦听?我还注意到您只调用
accept
一次,您的“组间MsgSender”会吗总是在服务器2尝试连接之前调用服务器1中的函数?是的,在我运行服务器2之前,服务器1已启动并正在侦听。感谢您的帮助顺便问一下:)对于服务器1,s
来自哪里?它应该是interGrpSock.bind((主机,端口))
,对于accept
调用也是如此。你能发布一些我们可以自己运行的可重复代码吗?