Sockets 如何终止侦听客户端';s创建套接字的请求?

Sockets 如何终止侦听客户端';s创建套接字的请求?,sockets,terminate,Sockets,Terminate,当我在终端中使用Ubuntu中的JavaJDK运行该程序时,如何使其退出 我想在这个程序运行时输入“end”,但我无法让它工作。 它侦听客户端并调用线程thingy为新客户端创建套接字。 我不知道该怎么结束这个节目。我什么都试过了 我昨天开始学习java。 请帮帮我 import java.net.*; //jave lib import java.io.*; //io lib public class MultiServerConnections {

当我在终端中使用Ubuntu中的JavaJDK运行该程序时,如何使其退出

我想在这个程序运行时输入“end”,但我无法让它工作。 它侦听客户端并调用线程thingy为新客户端创建套接字。 我不知道该怎么结束这个节目。我什么都试过了

我昨天开始学习java。 请帮帮我

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。