Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 如果服务器端口错误,则客户端正在等待响应_Java_Sockets - Fatal编程技术网

Java 如果服务器端口错误,则客户端正在等待响应

Java 如果服务器端口错误,则客户端正在等待响应,java,sockets,Java,Sockets,客户机输入有关服务器的一些信息(例如服务器名称、端口号与…)和将要发送的消息。但是如果它写错了端口号,客户端仍然等待响应 如果未为目标服务器打开端口,如何引发异常?如果服务器未侦听端口,它将获得一个连接异常:连接被拒绝。但是,如果连接到运行不同服务的端口,它可能不会得到响应,具体取决于该服务的功能。如果这是一个问题,我建议您暂停连接,如果它没有得到预期的结果。@skaffman的评论是正确的 通常,当您尝试打开到没有任何内容正在侦听的端口的TCP/IP连接时,远程计算机上的TCP/IP堆栈通过发

客户机输入有关服务器的一些信息(例如服务器名称、端口号与…)和将要发送的消息。但是如果它写错了端口号,客户端仍然等待响应


如果未为目标服务器打开端口,如何引发异常?

如果服务器未侦听端口,它将获得一个
连接异常:连接被拒绝
。但是,如果连接到运行不同服务的端口,它可能不会得到响应,具体取决于该服务的功能。如果这是一个问题,我建议您暂停连接,如果它没有得到预期的结果。

@skaffman的评论是正确的

通常,当您尝试打开到没有任何内容正在侦听的端口的TCP/IP连接时,远程计算机上的TCP/IP堆栈通过发送RST响应初始SYN消息,这将导致“连接被拒绝”异常

如果没有看到此异常,最有可能的原因是有东西阻塞了SYN消息(或正常的SYNACK响应)。这通常是一个防火墙(在任意一端)。一种常见的防火墙策略是对所有端口(少数端口除外)静默地丢弃TCP SYN消息。这将产生您观察到的效果

无论哪种方式,都无法立即获得异常。您最好设置一个非零连接超时,并捕获应该引发异常的超时异常

。如果没有,那么端口上正在侦听某些内容。