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),它卡住了
答案 0 :(得分:-1)
对于HTTPS(端口443),getOutputStream()运行良好,但对于HTTP(端口80),它卡住了
SSLSocket
?严肃点。端口80是明文。它不会响应SSL握手,至少不会像预期的那样。我很惊讶你没有得到握手例外。
对HTTP使用明文套接字,对HTTPS使用SSL。实际上你应该使用HttpURLConnection
并停止尝试自己动手。