目前我正在开发Java客户端/服务器聊天应用程序,并且遇到了一个问题,我会尽可能地解释清楚。如何从某个Java线程调用方法
我的服务器部分保持创建线程(new ServerThread
)对谁联机每个用户:
while (isRunning) {
Socket socket = serverSocket.accept();
DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
outputStreams.put(socket, dout);
System.out.println (outputStreams.values());
new ServerThread(this, socket);
window.newConnectionInfo(socket);// informace
}
我有一个ServerThread类getter方法,我想从某些ServerThread调用基于套接字的实例。但ServerThread类没有分配给任何变量,所以我不知道如何从它调用方法。任何解决方案?很容易,你需要找到并找到你想强制的方法调用一个方法,你会保持你创建的每个线程,我建议你用于保持客户端的地图将在< ServerThread,DataOutputStream>
如果您需要在所有服务器线程上调用它,我建议您构建它们的列表并在需要时迭代它。如果您需要在特定情况下在特定线程上调用它,则需要有关您的方案的更多信息。 – Medo42 2013-05-04 21:24:12
你的问题不清楚。你的'ServerThread'有一个'run()'方法,在这个方法中执行流程。如果你想从线程调用“from”,你可以从那里调用一个方法。 – 2013-05-04 21:24:29
为什么在创建它之后不存储对每个ServerThread的引用。将其插入到以套接字为关键字的静态哈希映射中。 – 2013-05-04 21:29:09