如何使用Java网络编程之间在四个系统之间创建对等通信



基本上我想建立一个网络如下

1.Server

其他3个客户端。使用Java.net软件包的套接字和服务器套接字I制作了服务器程序和客户端程序。这是服务器和客户端之间的两种通信链接。到这里都很酷,但我的目的是在这些客户端之间建立通信链接。但是我该怎么做。任何建议都受到欢迎。

您可以使用udp或tcp hole punching使用对等连接。

,尽管您可以重新发明轮子,即实现您提到的内容:打开服务器套接字并等待客户端的连接服务的服务器,以某种方式知道服务器在哪里并连接到它等等,我建议您使用更高级别的工具。

选择取决于应用程序的性质。

  1. 您的服务器应该在容器中运行吗?
  2. 您的连接是否应该在本地网络或通过Internet建立?
  3. 您的数据在网络上传播的复杂程度有多复杂?
  4. 您有特殊的性能要求吗?

等。

因此,您可以使用可能的消息传递(JMS,KAFKA等)或网格(Hazelcast,GigAspaces)等。

尝试为我的问题准备答案。尝试找到其他问题并回答。然后在这里提出更多具体的问题。

首先,您说了1个服务器和3个客户端,因此客户/服务器是,而不是点对点。我的建议是使用套接字编程(服务器上的java.net.serversocket,或围绕netty或0mq等框架),或者使用更高级别的HTTP和REST等较高级别。客户端连接到服务器后,只需让服务器发送新客户端所有有关旧客户端的信息&反之亦然,它们可以直接连接。

我强烈建议从Java Doc开始阅读此插座编程教程,其原因是:

  1. 遵循教程的服务器 - 客户端编程不需要先验知识,只有I/O操作的基本熟悉度才有帮助。
  2. 教程首先定义套接字,然后描述客户端的设置,然后开始讨论服务器端处理。
  3. 在描述了单个服务器,单个客户端设置后,它触及了单个服务器 - 媒体客户端通信,并获得了为您需要播放的所有内容提供源代码的奖励。

我的建议是先下载所有源代码,然后将它们加载到您喜欢的IDE中,然后开始阅读教程并同时跟踪代码。我发现这个过程真的很有用。

最新更新