Java Netty双向和n客户端UDP

Java Netty双向和n客户端UDP,java,udp,client-server,netty,Java,Udp,Client Server,Netty,我正在尝试编写一个应用程序,它将在许多机器上运行,这些机器将通过发送UDP数据包流相互通信。通常一台机器将向另一台机器发送许多数据包,直到它们切换,而另一台机器将向另一台机器发送相同的数据包,以此类推。选择UDP是由于应用程序的性质(实时/速度比可靠性更重要)。我也知道UDP是一种无连接协议 通过做一个快速原型,我成功地创建了一个NIO数据报服务器(bind)和一个NIO数据报客户端(connect)。然而,我意识到我只能从客户端向服务器发送一种方式(或者可能我遗漏了什么?)。我不能向相反的方向

我正在尝试编写一个应用程序,它将在许多机器上运行,这些机器将通过发送UDP数据包流相互通信。通常一台机器将向另一台机器发送许多数据包,直到它们切换,而另一台机器将向另一台机器发送相同的数据包,以此类推。选择UDP是由于应用程序的性质(实时/速度比可靠性更重要)。我也知道UDP是一种无连接协议

通过做一个快速原型,我成功地创建了一个NIO数据报服务器(bind)和一个NIO数据报客户端(connect)。然而,我意识到我只能从客户端向服务器发送一种方式(或者可能我遗漏了什么?)。我不能向相反的方向发送

此外,由于UDP是一种无连接协议,我认为它应该接受多个客户端向其发送数据包(n-client到一台服务器),反之亦然(服务器逐个或多/广播向客户端发送数据包)

我应该在客户端创建一个服务器,监听不同的端口以实现双向连接吗?n客户端能否同时向一台服务器发送数据包? 我只是想有人把这件事告诉我。不需要示例代码(尽管非常感谢),您可以给我一些提示


谢谢。

对于您所描述的内容,您需要在不同机器上运行的程序的每个实例中都有一个服务器线程和一个客户机线程

创建一个多线程程序,包括一个服务线程和一个客户端线程—客户端线程需要了解所有服务器—IP和端口。服务器只侦听当前计算机上的端口

如果你在多台机器上运行相同的程序,你将得到一个p2p组


你也可以在互联网上的免费服务器上设置一个追踪器。跟踪程序将驻留在一个众所周知的URL中,并将维护一个参与机器的列表。当在计算机上启动程序时,程序的每个实例都将更新连接到该程序所需的详细信息的跟踪器,跟踪器可以维护此数据的列表,并与稍后出现的任何新实例共享这些数据。

有关您所描述的内容,在不同机器上运行的程序的每个实例中,都需要一个服务器线程和一个客户机线程

创建一个多线程程序,包括一个服务线程和一个客户端线程—客户端线程需要了解所有服务器—IP和端口。服务器只侦听当前计算机上的端口

如果你在多台机器上运行相同的程序,你将得到一个p2p组


你也可以在互联网上的免费服务器上设置一个追踪器。跟踪程序将驻留在一个众所周知的URL中,并将维护一个参与机器的列表。当在计算机上启动程序时,程序的每个实例都将更新连接到它所需的详细信息的跟踪器,跟踪器可以维护此数据的列表,并与稍后出现的任何新实例共享所有这些数据。

Ok我可以为客户端线程和服务器线程使用相同的端口吗,或者我必须为in/out->out/in选择不同的端口?如果服务器正在监听某个端口,最好让它空闲,并使用其他端口进行客户端连接。您可以在所有机器上为每台机器上运行的服务器线程修复端口A,并将端口B同样修复为所有机器上的客户端线程端口。好的,我可以为客户端线程和服务器线程的两端使用相同的端口,还是我必须为in/out->out/in选择不同的端口?如果服务器正在侦听端口,最好让它空闲,并使用其他端口进行客户端连接。您可以在所有机器上为每台机器上运行的服务器线程修复端口A,并将端口B类似地修复为所有机器上的客户端线程的端口。