在Java中,您可以使用Socket
和ServerSocket
来获取两个进程之间通信的双向 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/