gpt4 book ai didi

java - 一台服务器支持多个客户端 Java

转载 作者:行者123 更新时间:2023-12-01 12:04:42 25 4
gpt4 key购买 nike

我在一个线程中有一个服务器套接字 A,正在监听请求。我将有六个客户端使用同一台服务器(也许同时)。服务器 A 读取数据,对其进行处理并将数据发送到另一个服务器套接字 B。

代码:服务器A

public class ServerA implements Runnable{

@Override
public void run() {
this.Hilo();
}

public void Hilo(){
String dataIn;
ServerSocket socket;
try {
socket = new ServerSocket(6000);
System.out.println("Server on...");
while(true) {
Socket connectionSocket = socket.accept();
BufferedReader client = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
dataIn = client.readLine();
if (dataIn!= null){
// dataInPlus = SomeMethod(dataIn)
// Send dataInPlus to server B
}

}
}catch (Exception ex) {
System.out.println("Error");
}
}

1) ¿每次读取服务器 A 中的客户端时,我都应该创建一个线程来处理数据吗?

2) ¿如果六个客户端同时向服务器A发送数据会发生什么?

3)¿我应该为服务器 B 中的每个请愿创建一个线程吗?

最佳答案

1) 每次在服务器 A 中读取客户端时,我都应该创建一个线程来处理数据吗?

是的。这些工作线程称为工作线程。如果不这样做,那么您将在读取和处理请求时阻止下一个请求。因此其他请求的等待时间将会增加。

2)如果六个客户端同时向服务器A发送数据会发生什么?

同上。只有其中一个会处于 Activity 状态,其他人最终会等待。

3)我应该为服务器 B 中的每个请愿创建一个线程?

让您的工作线程处理与 serverB 的通信。

关于java - 一台服务器支持多个客户端 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27709675/

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