Sockets 如何终止侦听客户端';s创建套接字的请求?
当我在终端中使用Ubuntu中的JavaJDK运行该程序时,如何使其退出 我想在这个程序运行时输入“end”,但我无法让它工作。 它侦听客户端并调用线程thingy为新客户端创建套接字。 我不知道该怎么结束这个节目。我什么都试过了 我昨天开始学习java。 请帮帮我Sockets 如何终止侦听客户端';s创建套接字的请求?,sockets,terminate,Sockets,Terminate,当我在终端中使用Ubuntu中的JavaJDK运行该程序时,如何使其退出 我想在这个程序运行时输入“end”,但我无法让它工作。 它侦听客户端并调用线程thingy为新客户端创建套接字。 我不知道该怎么结束这个节目。我什么都试过了 我昨天开始学习java。 请帮帮我 import java.net.*; //jave lib import java.io.*; //io lib public class MultiServerConnections {
import java.net.*; //jave lib
import java.io.*; //io lib
public class MultiServerConnections { //initiate class
public static void main(String[] args) throws IOException {
int portNum = 5342; //set server port number
boolean listen = true;
System.out.println("Listening for Connections"); //print message
ServerSocket server_Socket = null; //set server_Socket to null
try {
server_Socket = new ServerSocket(portNum); //set server port
} catch (IOException e) {
System.err.println("Port " + portNum + " is unavailable"); //port is taken error
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); //set reader
String input;
//while (TCPglobals.checkRequests){
while (listen == true){
new MultiServer(server_Socket.accept()).start();
input = stdIn.readLine();
//if(TCPglobals.checkRequests == false) //|| (input = stdIn.readLine()) == "end")
if(input == "end") {
System.out.println("end connection?");
System.exit(1);
}
}//while
server_Socket.close(); //close server socket
}
}
if(input==“end”)
=>if(input.equals(“end”))
另请参见:我发现readLine给我带来了问题。如果没有键入任何内容,我希望服务器继续运行。任何事情继续进行的唯一方式是,如果我将某些内容写入服务器终端,然后服务器代码继续。如果我不写任何东西,如何使readLine跳过?我建议您在新问题中提出一个新问题。请尝试轮询BufferedReader.ready()以检查输入是否可用。这不是真正的答案,但显然java没有一种简单的方法来非阻塞终端IO。