如果我想在单个PC上使用(UDP)套接字作为进程间通信机制,由于两个端点的限制,我可以设置什么有相同的IP地址?一个或两个用于在单个主机上进行进程间通信的套接字
我想为了有两个进程A
和B
都监听相同的IP /端口地址,SO_REUSADDR
将是必要的 - 正确吗?而且即使这可能在概念允许在一个单一的插座全双工通讯科,还有我,如果我尝试去全双工其他问题:
- 我最终会接受我自己的传输,并有过滤它们出来吗?
- 我是否会因为使用SO_REUSEADDR而将自己暴露给其他进程将虚假或恶意数据注入到我的套接字中......或者我是否仅使用(无连接)UDP就会面临这种可能性?
- 如果我选择使用TCP,情况会如何不同(在寻址/安全/限制的意义上)?
我相信,有在每端(一个用于A -> B
数据,一个用于B ->A
数据),使用两个插座一个可行的解决方案......但有使用单插槽两端各有一个可行的解决方案?如果可能的话,每个进程使用一个全双工套接字是否会有明显的优势?
为什么你想让这两个进程在同一个端口上进行监听? –
为什么我不?这在逻辑上是一个连接......尽管打算使用无连接协议。所以问题是:这是否可能,如果是这样,这是可取的(基于事实而不是意见)? – omatai
这在逻辑上是一个连接,当然。但它在逻辑上也有两个不同的端点。为什么要让事情困难? –