所以我有一个家庭作业,要在一台服务器上创建 2 个客户端,并在一台服务器上进行通信。客户端 1 和客户端 2 可以与服务器通信,但我需要 2 个客户端与每个客户端通信,我被难住了??
我很确定我使用 ArrayList 添加客户端并使用 for 循环来遍历它们是正确的。我只是不知道如何连接客户端以相互通信。 这是我的代码。
//通信线程类在Server.class文件中。 while true 循环中的 for 循环应该使 2 个客户端能够通信,但事实并非如此?
class ComThreads implements Runnable{
private Socket s;
java.util.Date date=new java.util.Date();
public ComThreads(Socket s)
{
this.s=s;
}
public void run()
{ try {
DataInputStream inputFromClient = new DataInputStream(
s.getInputStream());
DataOutputStream outputToClient = new DataOutputStream(
s.getOutputStream());
while(true) {
String line=inputFromClient.readUTF();
for(int i=0; i < clientList.size(); i++) {
if(clientList.get(i).equals(s)) {
Socket tempSoc=clientList.get(i);
DataOutputStream msOut=new DataOutputStream(tempSoc.getOutputStream());
msOut.writeUTF(line);
//outputToClient.writeUTF(message);
msOut.flush();
}
}
Platform.runLater(()->{
ta.appendText(line);
ta.appendText("\n");
});
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
s.close();
}catch(IOException e) {
// later
}
}
}
}
}
只需要 2 个客户端进行通信。任何帮助,将不胜感激。 谢谢
最佳答案
我成功了。我所要做的就是添加一个 Runnable 类来读取客户端消息并将其传递给其他客户端。所以我只是在我的客户端类中缺少一个线程。 谢谢。
关于java - 客户端-服务器多线程聊天应用程序。客户与客户的沟通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505539/