Network programming Java和Objective-C中游戏的实时游戏网络库

Network programming Java和Objective-C中游戏的实时游戏网络库,network-programming,udp,real-time,Network Programming,Udp,Real Time,我希望使用专用Java服务器和iphone客户端以及Java桌面客户端构建实时游戏。Java和iphone(特别是可靠的UDP)有哪些可用的高性能网络传输库可用于实时多人游戏开发 大多数基于动作的实时游戏(Counter Strike、Left4Dead、Quake III)的一般建议是使用UDP/IP传输协议将消息作为“不可靠”的数据包发送,以支持TCP的“有保证”传输(因为重发和延迟问题您无法轻松控制) 另一个建议是建立一个可靠的UDP协议,让你“有选择地”保证UDP数据包的传输(同时

我希望使用专用Java服务器和iphone客户端以及Java桌面客户端构建实时游戏。Java和iphone(特别是可靠的UDP)有哪些可用的高性能网络传输库可用于实时多人游戏开发

大多数基于动作的实时游戏(Counter Strike、Left4Dead、Quake III)的一般建议是使用UDP/IP传输协议将消息作为“不可靠”的数据包发送,以支持TCP的“有保证”传输(因为重发和延迟问题您无法轻松控制)

  • 另一个建议是建立一个可靠的UDP协议,让你“有选择地”保证UDP数据包的传输(同时仍然不能保证传输顺序,如TCP流,只要你的游戏可以处理无序的数据包)

是一个具有C++绑定的java MMO服务器(对于一般的多人游戏来说,它是一个轻量级的实时网络库)。 我见过用C编写的用于可靠UDP的库: --可靠的UDP库


-看看Kryo及其相关的通信库


它正是为这种应用(高性能网络传输)而设计的。我不确定是否有Objective-C绑定,但即使没有,也值得一看框架的设计有多好。这里有一个库(我自己写的!),它同时提供UDP和TCP支持。可靠的UDP原来是TCP。您可以在UDP之上编写自己的自定义ack逻辑,但一般来说,对于需要到达服务器的内容,最好使用TCP,对于其他内容,最好使用UDP

在jetserver中,同一会话同时使用UDP和TCP进行通信。网络消息可以使用Reliable=TCP和FAST=UDP发送。

“特别可靠的UDP”

UDP的设计不可靠。这就像发送旧邮件(不是电子邮件)。你把信放进信封,写下地址,贴上邮票,然后把它放进邮箱。它可能会被转移,但你不能确定。 UDP是为速度比正确性更重要的情况而设计的(正确性如“我的应用程序需要所有东西都正确地逐位传输”)


例如,像skype videochat这样的应用程序需要更多的带宽和更少的延迟,一些丢失的比特可以在应用程序级别修复(因此它使用UDP)。与此同时,基于文本的聊天需要更少的带宽,并能经受更大的延迟,但需要更多的正确性(你怎么知道这个字符串:fsd被正确地传输了?用什么语言?等等),所以它需要TCP。事实上,skype中的东西就是这样工作的。

这是一个糟糕的答案。提问者显然要求在UDP之上有一个可靠的ARQ。