socket.connect()

2 отговора 0 прегледа
#1

socket.connect()

привет!
Таз значи ... правя си сокет и се връзвам. мога да пиша и чета...
...и всичко е наред.

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
Writer out = new OutputStreamWriter(socket.getOutputStream());
....

при този подход,ОБАЧЕ, таймаутът за свързване в безкрайност.
Ако го няма другия хост, е досадно...
Затова правя следното:

SSLSocket socket = (SSLSocket) factory.createSocket();
socket.connect(new InetSocketAddress(host, port), 5000 );

така указвам 5 секунди.
И при опит да пиша -
out.write("blqbnlqblqblqblq\r\n"), се получава:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

Ако трябва да обобщя с една дума: ЕГАТИИИ !!!

Отговор
в отговор на lLlN #2

Re: socket.connect()

Защо не пробваш с:

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
socket.setSoTimeout(5000);
Writer out = new OutputStreamWriter(socket.getOutputStream());

Отговор
в отговор на Bacил #3

Re: socket.connect()

това го пробвах. Има смисъл, ако вече съм се вързал и по време на четене или писане прекъсне.
Трябва да сетвам таймаут-а преди това, иначе оставам на
SSLSocket socket = (SSLSocket) factory.createSocket(host, port).

Отговор