问题描述
我希望在此处发布问题不会有任何危害。真的让我发疯了...
https://hastebin.com/ekigenewel.rb
https://hastebin.com/esuhanigop.py
https://hastebin.com/orutodejif.yaml
我确实发现错误跟踪需要时间并且会有所帮助,因此我没有期待任何事情,只是我怀疑自己可以做到,我已经在上面浪费了4个小时 这个想法是让我用pygame和套接字制作多人游戏。我有一个问题,当客户端A上的字符A从客户端B FOV中退出,然后第二个跟随它时。问题是客户端B char A的偏移量为常数delta [3.3]。
预先感谢
解决方法
您的网络代码无法处理客户端断开连接。一种简单的检测方法是套接字.recv()
返回空数据列表时。目前,它进入了快速的 infinite 循环。
对您的esuhanigop.py
threaded_client()
函数进行小的修补就可以解决此问题:
def threaded_client(connection,addr):
while True:
data = connection.recv(2048)
if ( len( data ) == 0 ): # Client has disconnected
break # Stop communications
set_dat(addr,str(data,encoding='UTF-8'))
dat = get_dat()
if dat:
connection.sendall(str.encode(dat,encoding='UTF-8'))
connection.close()
有了这个补丁,我能够在不看到任何python错误的情况下,增加与服务器的连接和断开连接。