我有一台服务器使用一个线程从远程数据源接收UDP DatagramPackets;和一个TCP ServerSocket来监听远程客户端请求并为每个客户端生成一个专用线程。 我想通过ServerSocket将每个DatagramPackets传输到多个客户端。现在我遇到了严重的数据包丢失。有人可以提一些建议吗? 提前谢谢。
答案 0 :(得分:0)
设计中的协议选择是否错误? 当你使用TCP时,对于多个客户端来说应该是可靠的。但由于在服务器端引入了对UDP槽耦合(桥接/重新广播)的依赖,可靠性失败了。
如果您考虑到数据包将在设计中丢失,则UDP或多或少适用于可靠的应用程序。
答案 1 :(得分:0)
更重要的是要在发送方上摆脱UDP ,而不是试图以某种方式将其扼杀到接收机的TCP设计中,而这已经太晚了。数据包在发送方和接收方之间丢失,而不是在接收方中丢失。修复接收器代码不会解决实际问题。
答案 2 :(得分:0)
在不了解您的应用程序设计的情况下,我可以做出以下猜测: