我必须使用 python 套接字在 2 个组之间设置组通信。每个组都有一个组长,作为组内其他成员的服务器,在组内传输消息。2个组长也需要通信才能传递组间消息。
我的程序正在传输组内消息。但是,为了传输组间消息,我在每个领导者(服务器)上创建了一个新线程,并将其中一个领导者作为客户端,另一个作为客户端。
问题:我的问题是在服务器 2 尝试连接到服务器 1 时出现“[Errno 111] Connection denied”错误。
代码(服务器 1)interGroupMsgSender 函数:
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);
代码(服务器 2)interGroupMsgSender 函数:
ss = socket.socket()
host = socket.gethostname()
port = 12349
try:
ss.connect((host, port))
创建新线程的代码(两台服务器相同):
thr2 = threading.Thread(target = interGroupMsgSender);
thr2.daemon=True # Causes the thread to terminate when main process ends
thr2.start();
注意:这两个服务器都已充当其他组成员的服务器。
在此先感谢您的帮助。