0

我有程序用java编写它等待端口上的连接

当我通过 nmap 扫描服务器时,程序停止(错误)

这是我的代码

SSLServerSocketFactory sslServerSocketfactory = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
                sslServerSocket = (SSLServerSocket)sslServerSocketfactory.createServerSocket(intSSLport);

out = new PrintWriter(sslSocket.getOutputStream(), true);
                  in = new BufferedReader(new InputStreamReader(sslSocket.getInputStream()));
                  String value = in.readLine();

感谢 jtahlborn ,,,, 我通过使用 try 和 catch 解决了 ,, 并让 catch 返回

sslSocket = (SSLSocket)sslServerSocket.accept()

再次

4

1 回答 1

2

nmap 正在扫描打开的端口,尝试连接它们(发送 TCP SYN)。由于您已经打开了服务器套接字,因此当有客户端连接到它时它会返回。在您的情况下,它是 nmap,它尝试连接。

AFAIK,nmap 不会完成 TCP 连接过程(3 次握手)。nmap 将接收由于您调用accept() 而发送的TCP SYN/ACK,并得出端口已打开的结论。就是这样,nmap 不会发送完成 TCP 连接过程 (ACK) 所需的第三条消息。

于 2012-09-11T18:57:24.630 回答