我试图在run()方法中调用其他方法。但只有在退出/终止客户端连接时,这些方法才会显示输出。例如:当客户端发出listall命令时,应该打印listall方法。但它只有在客户端终止连接时才会被调用。
谁能告诉我我做错了什么吗
运行()
try {
System.out.println("Client socket : "+ clientSocket);
clientPortNumber=clientSocket.getPort();
clients.add(clientSocket);
String line;
while(true) {
line=is.readLine();
//System.out.println(line);
if(line==null)
break;
String temp[]=line.split(" ");
if(temp[0].equals("ADD")) {
addRfc();//add method invocation
}
else if(temp[0].equals("LOOKUP"))
send(os);//send method invocation
else if(temp[0].equals("ListAll")) {
listAll(); /*listall method should print when cient gives listall command. But it gets invoked only when client terminates the connection*/
} else if(line.equalsIgnoreCase("quit")) {
break;
}
}
}
catch (IOException e) {
System.out.println(e);
}
}
检查客户端的实现。这听起来像是客户端被缓冲了,你需要在服务器接收请求之前刷新请求。
我在做一个客户端/服务器应用程序。目前它的功能很好,但我需要添加一个“选项”。 server类如下所示: 因此许多客户端都能够连接到服务器。我的观点是:我希望一个连接的客户机(比如说,Client1)能够向他选择的另一个连接的客户机(Client2)发送一些东西。 我的问题是:Client1如何找到/拥有/检索Client2的套接字,因为所有的Client1都通过这个clientSocket在不同
问题内容: 我在ServerConnectionManager中有以下代码: 我在其他一些使用ServerConnectionManager的线程的run方法中有一些代码:让我们将此线程称为B 问题是我无法从ServerConnectionManager的run方法中调用ReceivedPacket上的任何方法。但是,我能够从此ServerConnectionManager线程的构造函数中调用re
问题内容: 假设我有一个和方法,我想从其他线程运行。是否可以仅使用一个extends类来执行此操作,而这些方法不在方法中? 我想到了这一点: 但是在这种情况下,方法完成后是否仍将是多线程的? 问题答案: 在方法 内部 进行工作;并调用您想调用的任何方法。 然而,和 只 被称为线程“内”。在投稿代码既和被 不 所述的上下文中执行的线程; 而是在当前线程的上下文中。 还可以向线程提供Runnable,
我在Java开发了一个客户端-服务器游戏(称为“Set”)。 在调试过程中遇到了一个非常尴尬的问题: 如果在同一台机器上同时运行客户端和服务器(客户端连接到localhost),这个游戏工作得很棒(如果我运行服务器和大量客户端的话也是如此)。 但是,如果我在两台不同的机器上运行客户端和服务器,那么客户端和服务器都挂起了Inputstream readLine方法。 我会提到我正在使用writeBy
我正在用java开发一个网络服务器,它将为它的客户端提供网络套接字通信。有人建议我在处理许多客户端时使用线程池,因为这比每个客户端使用一个线程要省时得多。 我的问题很简单,Javas ExecutorService、newFixedThreadPool是否能够处理可运行任务队列,并在其中调用线程阻塞方法? 换句话说,我想知道这个线程池是否是异步的? 我问这个问题的原因是,我已经尝试使用一个新的Fi