2012-04-26 112 views
0

据我所知,UDP是一种不可靠的协议。在我工作的一个项目中,本地UDP套接字被建议为两个进程之间的IPC的意思。本地UDP完全可靠吗?我可以想象它,但只是想确认。UDP本地套接字reliabiltiy

如果是,本地UDP和域套接字有什么区别?

谢谢,

+1

http://stackoverflow.com/questions/2128701/is-sending-data-via-udp-sockets-on-the-same-machine-reliable – cnicutar 2012-04-26 07:13:55

回答

0

有没有保证。毕竟它是UDP。有人的实现可能会忽略你发送的每一个第二个数据包,本地或远程,仍然是一个有效的实现。

实际上,您和其他进程之间存在多个操作系统交互级别,其中任何一个都可能因任何原因而失败。

命名管道或类似可能是一个更好的选择。或者,如果你需要一个可靠的套接字,TCP。

3

UDP在任何情况下都不可靠。例如,如果接收者没有像到达那样快地读取消息,则其接收缓冲区将溢出并且所有附加消息将被丢弃。

UDP与域套接字的区别在于,域套接字实际上只是两个与另一个对话的套接字,而UDP则在两个套接字之间插入两个IP堆栈实例。这是一个相当不错的描述:

unix domain sockets vs. internet sockets