gpt4 book ai didi

Java 套接字 : multiple client threads on same port on same machine?

转载 作者:太空狗 更新时间:2023-10-29 22:35:12 24 4
gpt4 key购买 nike

我是 Java 套接字编程的新手,我想了解下面的代码是否正确。我的问题是:

我能否在每个线程上让多个客户端尝试连接到同一程序中的服务器实例,并期望服务器在客户端之间隔离的情况下读写数据?

public class Client extends Thread
{
...
void run()
{
Socket socket = new Socket("localhost", 1234);
doIO(socket);
}
}

public class Server extends Thread
{
...
void run()
{
// serverSocket on "localhost", 1234
Socket clientSock = serverSocket.accept();
executor.execute(new ClientWorker(clientSock));
}
}

现在我可以在不同线程上尝试连接当前机器的同一端口上的多个客户端实例吗?

例如,

   Server s = new Server("localhost", 1234);
s.start();
Client[] c = new Client[10];
for (int i = 0; i < c.length; ++i)
{
c.start();
}

最佳答案

是的,但是只有一个客户端能够按照写入的方式连接每个线程执行。

您可以将您的服务器 run() 放在一个 while true 循环中,让多个客户端连接。根据执行者的不同,它们将串行或并行执行。

   public class Server extends Thread  
{
...
void run()
{
while(true){
// serverSocket on "localhost", 1234
Socket clientSock = serverSocket.accept();
executor.execute(new ClientWorker(clientSock));
}
}
}

关于Java 套接字 : multiple client threads on same port on same machine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com