Java "peer" 用于点对点通信的套接字
Java "peer" socket for peer to peer communication
在Java中,可以使用Socket
和ServerSocket
获得两个进程间通信的双向通道。但是其中只有一个必须具有 ServerSocket 并被视为 "the server",另一个被视为 "the client",作为服务器必须首先可用。那么,有没有办法让两个对等点使用相同的代码呢?我的意思是,在客户端-服务器应用程序中,服务器必须等待客户端:
ServerSocket serverSocket = new ServerSocket(port);
Socket client = serverSocket.accept();
而客户端必须连接到服务器:
Socket socket = new Socket(host, port);
并且如果没有活动服务器,则客户端代码失败。
我的问题是有没有办法让两个peer都使用客户端代码等待另一台主机出现,这样哪个peer先到就没有关系了。
在点对点应用程序中,每个点既是客户端又是服务器。多线程通常用于使对等点能够侦听传入连接以及为其他对等点建立新连接。因此代码对所有同行都是相同的。
在Java中,可以使用Socket
和ServerSocket
获得两个进程间通信的双向通道。但是其中只有一个必须具有 ServerSocket 并被视为 "the server",另一个被视为 "the client",作为服务器必须首先可用。那么,有没有办法让两个对等点使用相同的代码呢?我的意思是,在客户端-服务器应用程序中,服务器必须等待客户端:
ServerSocket serverSocket = new ServerSocket(port);
Socket client = serverSocket.accept();
而客户端必须连接到服务器:
Socket socket = new Socket(host, port);
并且如果没有活动服务器,则客户端代码失败。
我的问题是有没有办法让两个peer都使用客户端代码等待另一台主机出现,这样哪个peer先到就没有关系了。
在点对点应用程序中,每个点既是客户端又是服务器。多线程通常用于使对等点能够侦听传入连接以及为其他对等点建立新连接。因此代码对所有同行都是相同的。