我正在尝试使用套接字在 pygame 中创建一个两人游戏,问题是,当我尝试在此行上接收数据时:
message = self.conn.recv(1024)
python 挂起,直到它获得一些数据。这个问题是当客户端没有通过套接字发送任何东西并导致黑屏时暂停游戏循环。我怎样才能阻止 recv 这样做?
提前致谢
最佳答案
使用非阻塞模式。 (参见 socket.setblocking
。)
或者在调用recv
之前检查是否有数据可用。
例如,使用 select.select
:
r, _, _ = select.select([self.conn], [], [])
if r:
# ready to receive
message = self.conn.recv(1024)
关于python 套接字阻止 recv 挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20289981/