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();
}
在这段代码中,它总是在接受buyerSocket之前等待sellerSocket先连接。任何人都可以建议一种接受先到者的方法吗?
对于accept()的描述 - 侦听对此套接字的连接并接受它。该方法将阻塞,直到建立连接。如果我想接受来自多个端口的连接,我应该使用另一种方法而不是accept()吗?
答案 0 :(得分:1)
您必须使用非阻塞IO(NIO)库。你可以按照这个很好的教程http://tutorials.jenkov.com/java-nio/index.html
答案 1 :(得分:0)
执行此操作的唯一方法是使用多线程,因为accept()方法会阻塞,直到连接进入。