接受多个端口的 ServerSocket 连接
Accept ServerSocket connection for multiple port
buyerSocket = new ServerSocket(BUYER_PORT);
sellerSocket = new ServerSocket(SELLER_PORT);
Socket clientSocket = null;
while (true)
{
clientSocket = sellerSocket.accept();
MultiServerThread x = new MultiServerThread(clientSocket, dat);
x.start();
clientSocket = buyerSocket.accept();
MultiServerThread y = new MultiServerThread(clientSocket, dat);
y.start();
}
在这段代码中,它总是先等待 sellerSocket 连接,然后再接受 buyerSocket。谁能建议一种先接受哪个的方法?
关于 accept() 的描述 - 侦听要与此套接字建立的连接并接受它。该方法会阻塞,直到建立连接。如果我想接受来自多个端口的连接,我应该使用其他方法而不是 accept() 吗?
做到这一点的唯一方法是使用多线程,因为 accept() 方法会阻塞,直到有连接进来。
您必须为此使用非阻塞 IO (NIO) 库。您可以按照这个不错的教程 http://tutorials.jenkov.com/java-nio/index.html
buyerSocket = new ServerSocket(BUYER_PORT);
sellerSocket = new ServerSocket(SELLER_PORT);
Socket clientSocket = null;
while (true)
{
clientSocket = sellerSocket.accept();
MultiServerThread x = new MultiServerThread(clientSocket, dat);
x.start();
clientSocket = buyerSocket.accept();
MultiServerThread y = new MultiServerThread(clientSocket, dat);
y.start();
}
在这段代码中,它总是先等待 sellerSocket 连接,然后再接受 buyerSocket。谁能建议一种先接受哪个的方法?
关于 accept() 的描述 - 侦听要与此套接字建立的连接并接受它。该方法会阻塞,直到建立连接。如果我想接受来自多个端口的连接,我应该使用其他方法而不是 accept() 吗?
做到这一点的唯一方法是使用多线程,因为 accept() 方法会阻塞,直到有连接进来。
您必须为此使用非阻塞 IO (NIO) 库。您可以按照这个不错的教程 http://tutorials.jenkov.com/java-nio/index.html