用于点对点通信的 Java "peer"套接字

标签 java sockets network-programming p2p

在Java中,您可以使用SocketServerSocket来获取两个进程之间通信的双向 channel 。但其中只有一个必须拥有 ServerSocket 并被视为“服务器”,另一个则被视为“客户端”,服务器必须首先可用。那么,有没有办法让双方的代码相同呢?我的意思是,在客户端-服务器应用程序中,服务器必须等待客户端:

ServerSocket serverSocket = new ServerSocket(port);
Socket client = serverSocket.accept();

而客户端必须连接到服务器:

Socket socket = new Socket(host, port);

如果没有 Activity 服务器,客户端代码就会失败。

我的问题是是否有办法让两个对等点都使用客户端代码等待另一个主机出现,这样哪个对等点先到达就不再重要了。

最佳答案

在对等应用程序中,每个对等点既是客户端又是服务器。多个线程通常用于使对等点能够监听传入连接以及与其他对等点建立新连接。因此,所有对等点的代码都是相同的。

关于用于点对点通信的 Java "peer"套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35381946/

相关文章:

sockets - TCP 是双向的还是全双工的?

Java Socket,绑定(bind)到本地端口

c - 如何在 C 中使用 igmp v3 加入多播组

java - 远程服务器上的 SocketException

java - SwingWorker 没有响应

java - 如何获取枚举值的附加属性?

sockets - 作为 UDP 客户端的 Netcat 不接收来自 Arduino Wifi Shield 的响应数据包。简单的 C UDP 客户端。为什么?

linux - 跟踪特定的 IP 和端口

java - ImageJ jar 文件插件快捷方式创建

java - 如何在 Eclipse 中的 java 项目中创建 H2 数据库?