python - 修复重新进入 FOV 时其他客户端字符的偏移量,(PyGame 和套接字)
问题描述
我希望在这里发布问题没有害处。它真的让我发疯......
https://hastebin.com/ekigenewel.rb <-客户端
https://hastebin.com/esuhanigop.py <- 服务器
https://hastebin.com/orutodejif.yaml <- .owo 地图文件
我确实知道错误跟踪需要时间并且愿意提供帮助,因此我不期待任何事情,只是我怀疑我自己能做到,我已经浪费了大约 4 个小时我的想法是我制作一个带有 pygame 和套接字的多人游戏。我有一个问题,当客户端 A 上的字符 A 退出客户端 B FOV 并随后出现第二个问题时。问题是客户端 B char A 以恒定增量 [3.3] 偏移。
提前致谢
解决方案
您的网络代码不处理客户端断开连接。一个简单的检测方法是当套接字.recv()
返回一个空的数据列表时。目前它进入一个快速的无限循环。
您的功能的一个小补丁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 错误。
推荐阅读
- php - DatabasePHP:创建的用户A访问创建的用户B的数据库,反之亦然
- c++ - 通过 const&、&& 或仅通过值,哪个更好地获得返回值?
- permissions - launchctl / launchd - 守护程序/代理 - 权限错误 - OSX 11.0.1
- javascript - 由于“cloudinary.uploader 未定义”错误,从 cloudinary 中删除媒体文件失败
- java - java.lang.ArrayIndexOutOfBoundsException: Index -2 out of bounds for length 46410 在使用 Apache POI 打开 XLS 文件时是什么意思?
- vaadin-flow - 瓦丁 18 | 需要使用 Lit-Template 和 HTML 文本将消息从客户端传递到服务器
- github - VS Code github 一直显示 Uploading files forever
- r - ggplotly 是否提供了一种将选择中的数据(例如,散点图中来自 aes() 的 x 和 y 值)复制到剪贴板的方法?
- r - R:read.csv 在一列名称中引入了不可读的字符
- unity3d - Unity 2d 相机缩放到屏幕尺寸