且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何同时在单个端口上运行tcp和udp?

更新时间:2022-11-30 16:00:43

您无法检查请求是TCP还是UDP.而是添加一个侦听器(即TCP)和一个侦听器(即UDP).如果您使用广播或多播地址,则IMHO UDP更有用.

You can't check whether a request is TCP or UDP. Instead you add a listener which is TCP and a listener which is UDP. IMHO UDP is more useful if you use a broadcast or multi-cast address.

例如

ServerSocket ss = new ServerSocket(12345);
DatagramSocket ds = new DatagramSocket(12345);

ServerSocket ss = new ServerSocket(12345);
DatagramSocket ds = new MulticastSocket(new InetSocketAddress("224.224.1.1", 12345));

在两种情况下,tcp连接都转到ServerSocket,而udp数据包转到DatagramSocket

In both cases, tcp connections go to the ServerSocket and udp packets go to the DatagramSocket