Java 如何在与客户端建立TCP连接的同时建立UDP连接?
我有一个简单的服务器,它有一个主线程,接受客户机,并为每个客户机启动一个新线程。因此,在这个线程中,我想与客户端建立另一个连接(UDP),但我感到困惑。如果有10个线程(客户端)正在运行,并且所有10个线程都试图打开具有相同端口的DatagramSocket,那么将抛出SocketBindException,对吗?那么我该怎么做呢?只需为每个UDP连接使用不同的端口即可。可以向每个线程传递两个值,即通过TCP连接的客户端和线程可用于连接客户端的UDP端口,并且它将仅使用该端口。这样就不会发生冲突,启动线程的方法知道哪个线程正在使用哪个端口进行UDP。Java 如何在与客户端建立TCP连接的同时建立UDP连接?,java,tcp,udp,Java,Tcp,Udp,我有一个简单的服务器,它有一个主线程,接受客户机,并为每个客户机启动一个新线程。因此,在这个线程中,我想与客户端建立另一个连接(UDP),但我感到困惑。如果有10个线程(客户端)正在运行,并且所有10个线程都试图打开具有相同端口的DatagramSocket,那么将抛出SocketBindException,对吗?那么我该怎么做呢?只需为每个UDP连接使用不同的端口即可。可以向每个线程传递两个值,即通过TCP连接的客户端和线程可用于连接客户端的UDP端口,并且它将仅使用该端口。这样就不会发生冲突
- 客户端通过TCP连接到服务器
- 决定侦听哪个UDP端口。将该信息发送到服务器 通过TCP
- 生成一个线程,绑定到UDP端口成为UDP服务器
- 服务器接收TCP套接字上的UDP端口信息
- 生成接收端口信息的UDP线程。变成UDP 客户
- UDP线程连接到UDP服务器(也是TCP服务器) 客户)
如果UDP通信是单向的,则可以在主线程中绑定UDP端口,并在所有工作线程中重新使用它。UDP连接较少,因此无需维护任何状态。在发送给客户端的UDP消息中,TCP服务器通过UDP套接字充当UDP发送方。没有UDP连接。没有UDP连接。为什么您认为需要不止一个UDP套接字?你没有。