私はこのチャットサーバーコードを持っていますが、メッセージパッシングは基本的に機能しません。telnetでテストしていますが、クライアントに送り返すものは何も送信していません。クライアントが接続されていることはわかっていますが、実際には、wait_for_connection() 全体が正常に動作しています。Python でのマルチスレッドに関する知識が乏しいことに関係しているように感じます。誰かが私を修正できますか?
import socket, thread, sys
connections = []
isRunning = True
def wait_for_connection():
while isRunning:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(("", 1234))
s.listen(5);
print "Server is listening"
con, addr = s.accept()
print "Connected to", addr
connections.append(con)
def loop_through_connections():
for con in connections:
con.setblocking(0)
while isRunning:
for con in connections:
data = con.recv(100)
if not data:
break
for connection in connections:
connection.send(data)
if __name__ == "__main__":
thread.start_new_thread(wait_for_connection, ())
thread.start_new_thread(loop_through_connections, ())
while isRunning:
pass