套接字getOutputStream需要太长时间

时间:2017-10-30 02:49:34

标签: java sockets ssl https

Socket socket = sslSocketFactory.createSocket();
socket.connect(new InetSocketAddress(hostname, port), 5000);
OutputStream out = socket.getOutputStream(); // this takes too long

connect方法立即返回,但getOutputStream停留时间过长。

对于某些套接字地址而言,并不总是太长 对于HTTPS(端口443)getOutputStream()运行良好,但对于HTTP(端口80),它卡住了

1 个答案:

答案 0 :(得分:-1)

  

对于HTTPS(端口443),getOutputStream()运行良好,但对于HTTP(端口80),它卡住了

SSLSocket?严肃点。端口80是明文。它不会响应SSL握手,至少不会像预期的那样。我很惊讶你没有得到握手例外。

对HTTP使用明文套接字,对HTTPS使用SSL。实际上你应该使用HttpURLConnection并停止尝试自己动手。