不知道该如何用其他短语来表达该问题,这就是为什么用这种方式来表达该问题。我有两个问题:
我一开始不确定答案,但是我相信这两个答案都是“否”,这是不可能的。原因是在TCP情况下,无法唯一标识段,因为两个进程中的4元组(源端口,目标端口,源ip和目标ip)相同,这意味着无法区分各段。 类似地,对于UDP,IP数据报将携带源/目标IP,但是它们将相同。 UDP段将携带源端口/目标端口,但是同样,它们将相同。这意味着无法区分两种协议的段。
可能的解决方案是在两个单独的客户端上使用这些进程(这将意味着使用单独的IP,在两种情况下都解决问题),或者在同一主机上使用具有不同端口的进程。
请告知我这是否正确,或者我离开了,请告诉我原因。谢谢您的时间!
答案 0 :(得分:0)
还有一个相关的问题:TCP: can two different sockets share a port? 这部分与那里有关:
给定的套接字连接由传输协议,客户端IP +端口和服务器IP +端口的组合唯一标识。多个客户端只有在其客户端IP +端口彼此不同的情况下,才能连接到同一服务器IP +端口。
因此,我认为您基本上是正确的,但是由SO_REUSEADDR
或SO_REUSEPORT
引起的特殊情况可能允许多个不同的进程重用同一端口:TCP - possible for same client-side port to be used for different connections by different applications simlutaneously?