据我了解,UDP 是一种不可靠的协议。在我正在工作的一个项目中,建议将本地 UDP 套接字作为两个进程之间的 IPC 的平均值。本地 UDP 是否完全可靠?我想是的,但只是想确认一下。
如果是,本地 UDP 和域套接字有什么区别?
谢谢,
UDP 在任何情况下都不可靠。例如,如果接收者没有像消息到达一样快地读取消息,那么它的接收缓冲区将溢出并且所有额外的消息都将被丢弃。
UDP 和域套接字之间的区别在于,域套接字实际上只是两个套接字与另一个套接字通信,而 UDP 将 IP 堆栈的两个实例粘贴在两个套接字之间。这是一个很好的描述:
没有任何保证。毕竟是UDP。某人的实现可能会忽略您发送的每一秒数据包,无论是本地的还是远程的,但仍然是有效的实现。
实际上,您与其他进程之间存在多个级别的操作系统交互,其中任何一个都可能因任何原因而失败。
命名管道或类似的可能是更好的选择。或者,如果您需要可靠的套接字,TCP。