当我们在同一端口上绑定2个不同的协议时,TCP / IP如何识别正确的套接字

时间:2013-07-21 15:22:51

标签: sockets tcp network-programming datagram

在这里研究和询问当然,我发现了一些我以前不知道/意识到的东西 一个进程可以绑定两个不同协议的特定端口 例如。 XTCP的相同端口UDP。 (还有其他众所周知的例子吗?)
但这怎么可能呢? 我的意思是,如果我new DatagramSocket(6789);new ServerSocket(6789); 我假设我可以在我的程序中同时接受TCPUDP,并且只委托给不同的类。对吗?
但这实际上是如何运作的呢? java是否了解客户端是使用TCP还是UDP并将套接字传递给相应的类?

1 个答案:

答案 0 :(得分:2)

端口存在于协议的命名空间内。它不是同一个端口,只有相同的端口号。

Java也没有任何东西可以解决它。