Pythonソケットを使用して2つのグループ間のグループ通信を設定する必要があります。各グループには、グループ内の他のメンバーへのサーバーとして機能するグループリーダーがあり、グループ内でメッセージを転送します。2人のグループリーダーも、グループ間メッセージを転送するために通信する必要があります。
私のプログラムは、グループ内のメッセージを転送するように機能しています。ただし、グループ間メッセージを転送するために、各リーダー(サーバー)に新しいスレッドを作成し、リーダーの1つをクライアントとして、もう1つをクライアントとして使用しました。
問題:私の問題は、サーバー2がサーバー1に接続しようとした時点で、「[Errno111]接続が拒否されました」というエラーが発生することです。
コード(サーバー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();
注:これらのサーバーは両方とも、他のグループメンバーのサーバーとしてすでに機能しています。
よろしくお願いします。