java - 在 Java TCP 中接受多个客户端

标签 java tcp connection port

我想在 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/

相关文章:

java - 如何为 Eclipse 启用代码推荐器?

Java 通过 TCP 发送对象

Java Socket 仍然是 Java 中 TCP/IP 编程的首选?

php - 使用socket连接和普通PHP/MySQL/Ajax进行聊天的区别

java - 从模块以编程方式启动和停止 Wowza 中的传入流?

java - 如何从mysql数据库中的arraylist中添加超过50,000,000条记录

php - 使用 PHP 从外部服务器验证 MySQL 数据库中的信息

c#检测ClientWebSocket何时断开(关闭)

java - 枚举函数?

sockets - 如何重用拨号的 TCP 端口