与C和Java兼容的网络库

与C和Java兼容的网络库,java,android,c++,networking,enet,Java,Android,C++,Networking,Enet,我将开发一款具有多人游戏功能的Android小游戏。我用Enter库在C++中做了一个服务器框架,我想用这个框架来制作服务器。p> P>那么,有没有像java和C++兼容的网络环境?我知道存在jEnet(但它已经非常过时了)(https://github.com/csm/java-enet-wrapper),这是不成熟的。您可以尝试UDT: 我以前用过它,很好的实现了java与C++进程之间的通信。 签出。< /P> 在您的情况下,ENet比UDT更可取,因为UDT可能是处理器密集型的,游戏服

我将开发一款具有多人游戏功能的Android小游戏。我用Enter库在C++中做了一个服务器框架,我想用这个框架来制作服务器。p> <> P>那么,有没有像java和C++兼容的网络环境?我知道存在jEnet(但它已经非常过时了)(https://github.com/csm/java-enet-wrapper),这是不成熟的。

您可以尝试UDT:

我以前用过它,很好的实现了java与C++进程之间的通信。

签出。< /P> 在您的情况下,ENet比UDT更可取,因为UDT可能是处理器密集型的,游戏服务至少希望有很多连接。区别在于UDT实现的拥塞控制具有相对较高的CPU需求。UDT非常棒,但设计更适合大带宽、长距离传输而不是游戏中需要的小而高延迟的事务


还要注意的是,主流拥塞控制算法在小型事务中表现不佳。它们通过监测事务中每个数据包的RTT和/或监测事务中的数据包丢失率来工作,当每个事务在avg上仅为1-2个数据包时,这是没有意义的。拥塞控制协议的额外要求将影响延迟,即使在传输量较小的情况下,拥塞控制本身不太可能被占用。

谢谢。我要看一看。我也想试试j-enet()任何人都知道J-ENET与C++ EnEnter兼容的版本是什么?不像EnET.UDT是面向吞吐量的,如果你寻找吞吐量的话,没有理由选择TCP/IP上的UDP lib。另外,UDT在有限的情况下只因为它的CPU负载而有用。通常会消耗超过四分之一的CPU(查找)。选择UDP而不是TCP只有两个原因,1)延迟,2)连接范围(TCP有一个1对1连接模型,UDP可以支持所有对所有)。面向吞吐量的服务通常是面向内容的,这意味着它们两者都不需要。别误会,UDT以其自身的方式非常棒(我记得读过一些关于它被用来在不到一小时内传输超过1 TB的映射数据的文章,如果我没有弄错的话,这仍然是一个记录)但这是在CPU成本高,延迟差,不需要对等类型的行为。如果您不寻求可扩展、低延迟的解决方案,尤其是具有比TCP更广泛连接功能的解决方案,为什么选择UDP而不是TCP?