Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试使用现有ServerSocket创建新套接字时,程序将停止_Java_Sockets_Tcp_Serversocket - Fatal编程技术网

Java 尝试使用现有ServerSocket创建新套接字时,程序将停止

Java 尝试使用现有ServerSocket创建新套接字时,程序将停止,java,sockets,tcp,serversocket,Java,Sockets,Tcp,Serversocket,所以我运行一段代码,它应该创建一个套接字,一个ServerSocket,当我运行代码时,它在第14行遇到了一个停顿,但没有抛出任何异常。我错过了什么 public class Syncronizer { InputStream instr = null; PrintStream prnstr = null; BufferedReader br = null; DataInputStream in; DataOutputStream out; Se

所以我运行一段代码,它应该创建一个套接字,一个ServerSocket,当我运行代码时,它在第14行遇到了一个停顿,但没有抛出任何异常。我错过了什么

public class Syncronizer {

    InputStream instr = null;
    PrintStream prnstr = null;
    BufferedReader br = null;
    DataInputStream in;
    DataOutputStream out;
    ServerSocket TCPServerSocket;

    public Syncronizer() {
        try {
            instr = System.in;
            br = new BufferedReader(new InputStreamReader(instr));
            TCPServerSocket = new ServerSocket(7007);
            Socket clientSocket = TCPServerSocket.accept();
            in = new DataInputStream(clientSocket.getInputStream());
            out = new DataOutputStream(clientSocket.getOutputStream());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    ...
}
为了省去你的计算,这一行停止了我的程序:

Socket clientSocket = TCPServerSocket.accept();
编辑:使用halt,我的意思是我的程序仍在运行,但不会超出代码中的这一点,就像一个无限循环。

accept()
预期会被阻塞,直到代码调用的套接字的端口上出现连接。
accept()
正在侦听

您可能希望在此处使用RTFM:

侦听与此套接字的连接并接受它。该方法会一直阻塞,直到建立连接为止


你期望它做什么?您是否已打开与服务器的连接?我希望此客户端是管道/回送。所以现在我只想打开一个流,然后稍后处理源和汇部分。流到什么?连接有两个端点。此程序必须同时是接收器和源,我希望源输出数据,接收器接收数据。我需要这个程序的多个线程,这就是为什么我首先选择使用TCP套接字的原因。暂时忘掉接收器和源代码吧。您有一个服务器套接字。客户在哪里?哦,该死的,你说得对!谢谢,我完全忘记了/忽略了这一点。