我正在开发流媒体服务器和Flash客户端之间的Java接口.我注意到即使两个进程都在本地运行,UDP数据报也可能无序到达我的接口.
这是正常的吗?我认为,因为没有数据报必须经过任何路由器或任何网络设备,所以不应该发生这种情况.
这将取决于操作系统.虽然您未能指定操作系统,但它无论如何都不重要.为了保持可移植性,您应始终预期数据报套接字接收无序数据.
实际上,即使它们是由本地主机上的localhost发送的,也无法保证对UDP数据包进行排序和接收.仅仅因为协议的规范并不意味着它的任何内容.
由于您无法对它们进行假设,因此您应该选择使用TCP或使用程序处理的序列号来处理重新排序.