我们一直在开发网络密集的软件,并且为了最大限度地减少延迟,我们在大部分网络通信中使用UDP套接字。但是,每当我们将平台部署在一个“未知”的平台上时位置 - 例如在演示软件时,我们遇到了让所有网络实际工作的麻烦。我们在设置路由器时并不是无用的,但我确信在如何正确实现这些套接字方面我们必须有某些方法。
基本上,我们使用这样的系统:
现在我不明白的是:虚幻引擎UDP协议似乎总是在客户端(没有启用特定转发)上正常运行,而我们的自定义套接字有时无法接收数据:即,在某些网络中它无法正常工作,在其他情况下它不起作用(客户没有收到数据)
我们尝试过的一些事情是在同一端口上的客户端和服务器之间建立TCP连接,这种连接确实连接但并不总是修复'同一UDP端口的断开连接。我尝试的另一件事是NAT打孔,但这似乎并不总能奏效。
我的问题是:虚幻引擎(和其他程序,例如使用VoIP的程序)等程序如何保证'他们的UDP网络有效吗?我很想得到一些关于我可能尝试使用的技术的指示。
谢谢!