Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 列出在接受TCP连接之前尝试连接到ServerSocket的客户端?_Java_Sockets_Tcp_Network Programming_Serversocket - Fatal编程技术网

Java 列出在接受TCP连接之前尝试连接到ServerSocket的客户端?

Java 列出在接受TCP连接之前尝试连接到ServerSocket的客户端?,java,sockets,tcp,network-programming,serversocket,Java,Sockets,Tcp,Network Programming,Serversocket,我正在使用,以便侦听尝试连接的客户端的网络。换句话说,我打电话是为了“找到”客户。这会立即建立一个TCP连接,这已被证明有点麻烦 在我的例子中,建立连接的目的是使用它从我这边(服务器端)开始一些协议的特定握手。不幸的是,这种握手需要得到用户(也是服务器端)的批准。这意味着连接在使用之前可能会保持打开和空闲任意时间,有点像挂断电话 出于某种原因,一些客户端(我无法控制)在建立连接后立即启动超时(尽管该协议的规范没有说明超时或服务器及时启动握手)。因此,目前发生的是,即使握手成功开始,中间的某个地方

我正在使用,以便侦听尝试连接的客户端的网络。换句话说,我打电话是为了“找到”客户。这会立即建立一个TCP连接,这已被证明有点麻烦

在我的例子中,建立连接的目的是使用它从我这边(服务器端)开始一些协议的特定握手。不幸的是,这种握手需要得到用户(也是服务器端)的批准。这意味着连接在使用之前可能会保持打开和空闲任意时间,有点像挂断电话

出于某种原因,一些客户端(我无法控制)在建立连接后立即启动超时(尽管该协议的规范没有说明超时或服务器及时启动握手)。因此,目前发生的是,即使握手成功开始,中间的某个地方可能会失败,因为服务器端等待太长时间无法完成协议的认证阶段。 有没有一种方法可以以人类可读的形式列出入站客户机连接,而不接受并因此创建TCP连接,这样就可以手动选择其中一个来接受?如果不是通过
ServerSocket
,可能是其他方式


相关:通过首先盲目接受入站连接,然后在稍后的任意时间点决定是否关闭或实际使用连接,实现“服务器端连接过滤”是否被视为常规做法?我不知道如何以任何其他方式使用
ServerSocket

您能接受连接,但在用户批准之前不向客户端发送任何内容吗?Re:我认为大多数(如果不是所有的话)服务器都“盲目”接受连接(除非被防火墙或其他东西阻止),并使用他们自己的协议来决定是否继续。@Steve,已经没有发送任何内容,但对某些客户机来说并不重要。简单地建立连接就会触发超时。我认为您需要在协议中实现一些功能,例如,发送某个字节意味着“请待命”。@Steve,我会的,但这是一个标准协议,没有定义此类行为。我认为客户端超时已经不是标准的了。