使UDP成为面向连接的协议

本文关键字:协议 面向连接 UDP | 更新日期: 2023-09-27 18:05:41

我制作了一个使用UDP协议在客户端和服务器之间进行通信的在线游戏。然而,由于UDP是无连接的,我无法检测客户端是否关闭了游戏或网络中发生了错误。因此,我需要使UDP成为面向连接的协议,或者至少检测网络错误。我怎么才能做到呢?TCP连接是如何面向的?

使UDP成为面向连接的协议

正如你所说,UDP没有连接的概念。因此,实现您想要的唯一方法是在UDP之上实现所需的逻辑。

你可以,例如,有你的客户端'check in'与服务器定期与一个UDP数据包包含一个唯一的ID。如果服务器在一段时间内没有从客户端收到此消息,则认为该客户端已死。

首先,我理解你需要UDP是因为效率-但也许你可以试着给TCP一个尝试?

否则我会像@Phil Taprogge提到的那样做。发送一个特定的UDP包,每n秒被服务器识别一次。如果服务器在3*n秒内没有收到它,则很可能客户端已经断开连接。