java - 点对点与服务器客户端的实时游戏

标签 java sockets tcp udp p2p

我正在构建一个需要用户之间实时同步的游戏,目前我正在使用 tcp 没有延迟,而且速度不够快。

游戏支持15个并发用户,服务器每20毫秒向用户发送一次数据,如果有任何东西要发送,发送的数据最大为1个用户400字节,其他用户发送30字节,用户每 50 毫秒向服务器发送一次数据。

在考虑解决方案时,我想为什么不向服务器发送每个用户的连接数据,他会将“其他”连接数据发回给他们,而在运行游戏时每个用户将直接向所有其他用户发送他当前的信息使用udp.

第二种方法是保持当前的服务器客户端方式并将tcp更改为udp

什么会更快?它与当前的 tcp 客户端服务器速度有什么不同吗?

最佳答案

从某种意义上说,UDP 不一定会更快……尽管它有助于加快速度。 UDP 不考虑数据包是否到达目的地。它不会在发送更多数据之前等待数据包到达目的地,而是会尽可能快地继续发送。如果您想要一款非回合制的实时游戏,那么您应该尝试 UDP。

关于java - 点对点与服务器客户端的实时游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43505866/

相关文章:

java - 使用 GWT 生成器修改现有类

java - 如何通过Java代码知道是否安装了浏览器(即firefox,chrome)?

java - 如何通过 Selenium WebDriver 从下拉列表中选择一个选项

php - 通过套接字发送 2 个请求

java - SQLITE_ERROR SQL 错误或缺少数据库( "VALUES"附近 : syntax error)

C# 客户端/服务器 : using Streamreader/writer

java - 如何通过其他类访问存储到ArrayList中的对象的元素

cordova - 用在ionic chrom.sockets.udp中, 'sockets'为undefined

javascript - Socket.IO 每次发送一个数组(...)

sockets - 检索确切的连接 - tcp 套接字 - channel - goroutine