Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel

== != equals

Aktives Mitglied
Seit gestern bricht mein unveränderter Socket-Java-Client auf einem Linux-Server bei einer Streamverbindung ab bzw. kann die Verbindung gar nicht herstellen.
Dabei erhalte ich diese Texte im Exceptionobjekt:
Connection has been shutdown: javax.net.ssl.SSLException: Received close_notify during handshake
javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

Der (an sich funktionierende) Code ist dieser:
Java:
try {
	      SocketFactory socketFactory = SSLSocketFactory.getDefault();
	      socket = socketFactory.createSocket(host, port);
	      //socket.setSoTimeout(4000);
	      out = new PrintWriter(socket.getOutputStream(), true);
	      in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
	      
	      startabfragenErledigt=false;

	      out.println(loginMsg);

	      StringBuffer buf = new StringBuffer();
	      String msg = in.readLine();
	      String komplettesXML="";
	      while(msg != null) {
		    //System.out.println(msg);
	    	if(msg.equals("")==true) 
	    	{
	    		setNachricht(komplettesXML);
	    		komplettesXML="";
	    	} else komplettesXML+=msg;
	        buf.append(msg);
	        msg = in.readLine();
	        if(laeuft==false)
	        {
	        	break;
	        }
	      }
	      System.out.println("Fremdserver wird nicht mehr angehört.");
	    }
	    catch (UnknownHostException e) {
	      System.out.println("Unknown host");
	    }
		catch (IOException e) {
		  System.out.println("No I/O"); // <-- hier springt er immer rein
		}
Wenn ich die Klassen in meiner lokalen Entwicklungsumgebung, also auf dem Laptop, starte, klappt alles einwandfrei. Auch der Serverbetreiber, dessen Stream ich anhöre, bestätigt mir den einwandfreien Verlauf.

Wie kann ich nun herausfinden, woran es liegt, dass es auf einem bestimmten Server nicht klappt?

Danke im Voraus für jeden Tipp 🙂
 
Gib deine exceptions mal mit e.printStackTrace() aus, dann siehst du wenigstens mal in welcher Zeile der Fehler kommt.
 
Ich komme in Zeile 35 von Zeile 23.

Hier der Stacktrace:
INFO | jvm 1 | 2011/08/10 09:48:18 | javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkEOF(SSLSocketImpl.java:1255)
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:65)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.InputStreamReader.read(InputStreamReader.java:167)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.BufferedReader.fill(BufferedReader.java:136)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.BufferedReader.readLine(BufferedReader.java:299)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.BufferedReader.readLine(BufferedReader.java:362)
INFO | jvm 1 | 2011/08/10 09:48:18 | at testanwendung.MeinClient.listenSocket(MeinClient.java:83)
INFO | jvm 1 | 2011/08/10 09:48:18 | at testanwendung.haupt$MeinHandler.doTask(haupt.java:79)
INFO | jvm 1 | 2011/08/10 09:48:18 | at it.gotoandplay.smartfoxserver.util.scheduling.Scheduler.executeTasks(Scheduler.java:310)
INFO | jvm 1 | 2011/08/10 09:48:18 | at it.gotoandplay.smartfoxserver.util.scheduling.Scheduler.run(Scheduler.java:223)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.lang.Thread.run(Thread.java:619)

INFO | jvm 1 | 2011/08/10 09:48:18 | Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:808)
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:623)
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
INFO | jvm 1 | 2011/08/10 09:48:18 | at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.i😵utputStreamWriter.flush(OutputStreamWriter.java:212)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.BufferedWriter.flush(BufferedWriter.java:236)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.PrintWriter.newLine(PrintWriter.java:438)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.PrintWriter.println(PrintWriter.java:585)
INFO | jvm 1 | 2011/08/10 09:48:18 | at java.io.PrintWriter.println(PrintWriter.java:696)
INFO | jvm 1 | 2011/08/10 09:48:18 | at testanwendung.MeinClient.listenSocket(MeinClient.java:80)
INFO | jvm 1 | 2011/08/10 09:48:18 | ... 6 more
INFO | jvm 1 | 2011/08/10 09:48:18 | Caused by: java.io.EOFException: SSL peer shut down incorrectly
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:333)
INFO | jvm 1 | 2011/08/10 09:48:18 | at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
INFO | jvm 1 | 2011/08/10 09:48:18 | ... 19 more

Das Problem tritt auf dem Server offenbar nur bei einer SSL-Verbindung auf. Ich habe von der SSLSocketFactory auf SocketFactory und auf einen SSL-freien Port gewechselt, das klappt.
Ist möglicherweise etwas mit dem Server in Bezug auf SSL nicht in Ordnung?
 

Zurück
Oben