我想在 Java TCP 程序中接受多个客户端。所以我使用了 while 循环来接受多个客户端。但问题是我无法随机将节点与服务器连接。我曾经按照顺序一一连接客户端。那么如何使用switch case将节点与我的服务器随机连接呢?
我的while
循环:
int port=7000;
while(true)
{
try
{
node1=new ServerSocket(port+10);
Socket check1=node1.accept();
System.out.println("CLIENT A IS CONNECTED");
}
catch(Exception e)
{
System.out.println(e);
}
try
{
ServerSocket soc2=new ServerSocket(port+20);
Socket check2=soc2.accept();
System.out.println("CLIENT B IS CONNECTED");
}
catch(Exception e)
{
System.out.println(e);
}
try
{
node3=new ServerSocket(port+30);
Socket check3=node3.accept();
System.out.println("CLIENT C IS CONNECTED");
}
catch(Exception e)
{
System.out.println(e);
}
try
{
node4=new ServerSocket(port+40);
Socket check4=node4.accept();
System.out.println("CLIENT D IS CONNECTED");
}
catch(Exception e)
{
System.out.println(e);
}
try
{
node5=new ServerSocket(port+50);
Socket check5=node5.accept();
System.out.println("CLIENT E IS CONNECTED");
}
catch(Exception e)
{
System.out.println(e);
}
但是当我使用这个JavaNetBindexception
时,当我将它与E客户端连接时发生。
最佳答案
ServerSocket serverSocket = new ServerSocket(port);
ArrayList<Socket> clients = new ArrayList<Socket>();
while (true) {
clients.Add(serverSocket.accept());
}
这个怎么样?但您仍然需要多个线程。
关于java - 在 Java TCP 中接受多个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14771564/