2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
530
530
EMPFEHLEN
-
20.01.12 13:46 #1
Hallo zusammen,
habe seit gestern ein böses Problem mit der genannten SocketException ....
Zuerst mal der Code:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
public byte[] CommunicateData( byte[] RQB, String strIP, int nPort ) throws IOException { byte[] blwPBuffer = null; SocketAddress sockaddr = new InetSocketAddress( strIP, nPort ); Socket csock = new Socket(); csock.connect( sockaddr, m_REPSOCKETTIMEOUT ); csock.setSoTimeout( m_REPSOCKETTIMEOUT ); OutputStream cout = csock.getOutputStream(); InputStream cin = csock.getInputStream(); // tritt hier auf ****** cout.write( RQB ); byte[] blwPBufferTemp = new byte[MAXBUFFERLEN]; byte[] blwPBufferHeader = new byte[16]; int len = cin.read( blwPBufferHeader, 0, 16 ); int nsize = 0; if (blwPBufferHeader[0] == BUFFER_START) { nsize = ByteHelper.getRSPDataSize( blwPBufferHeader ); int lenneu = 0; blwPBuffer = new byte[BUFFER_OFFSET + 1 + nsize]; for (int n = 0; n < BUFFER_OFFSET; n++) { blwPBufferTemp[n] = blwPBufferHeader[n]; } while( (nsize + BUFFER_OFFSET) > len ) { lenneu = cin.read( blwPBufferTemp, len, (nsize - len + BUFFER_OFFSET) ); len += lenneu; } for( int k = 0; k < len; k++ ) { blwPBuffer[k] = blwPBufferTemp[k]; } cin.close(); cout.close(); csock.close(); WorkerErrorStatus.getInstance().setErrorWS( com.gselectronic.worker.status.IWorkerErrorStatus.WORKERERRORSTATUS_NOERROR ); } return blwPBuffer; }
Das Ganze tritt in einer funktionierenden Anwendung auf, die hier bei uns im Hause ca. 40 - 50 mal problemlos läuft.
Interessanterweise jedoch dabei nur auf genau drei PCs, die allesamt in den letzten Tagen entweder neu aufgesetzt wurden oder komplett neu sind. Die Java-Version ist überall 1.6.0_29. Ich habe bei einem der drei Rechner dann mal auf Java 1.6.0_30 upgedatet, aber leider ohne Erfolg ....
Es handelt sich durchweg um Rechner mit WinXP-SP3 !
Leider liefert eine Websuche hier weder Erklärungen noch mögliche Ursachen.
Deswegen hoffe ich, ggf. hier Hilfe zu finden !
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
20.01.12 16:22 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
Mit welchen Parametern wird die Methode aufgerufen? mit eine IP-Adresse oder einem Hostnamen? Letzteres könnte nämlich Probleme bereiten, falls der Hostname nicht aufgelöst werden kann (z.B. weil auf den frisch aufgesetzten Rechnern kein lokaler DNS-Server konfiguriert ist).
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
20.01.12 16:41 #3
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
würde zur Fehlersuche auch noch Wireshark mitlaufen lassen. Die Exception wird nämlich auch geworfen, wenn der Server die Verbindung trennt. Eventuell hilft dir der genaue Ablauf der Konversation ja weiter.
Gruß,
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
20.01.12 17:30 #4
Moin,
Aufruf geht eigentlich über die echte IP des Zielrechners (www.xxxx.yyy.zzz) und die Portnummer. Werde das am Montag aber trotzdem mal von unserer Netzwerkkabteilung prüfen lassen - Danke!
Sah zu dem gerade, dass ich vorhin im ersten Post, die falsche Stelle bezeichnet habe ... mea culpa
Es passiert natürlich beim READ :
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
public byte[] CommunicateData( byte[] RQB, String strIP, int nPort ) throws IOException { byte[] blwPBuffer = null; SocketAddress sockaddr = new InetSocketAddress( strIP, nPort ); Socket csock = new Socket(); csock.connect( sockaddr, m_REPSOCKETTIMEOUT ); csock.setSoTimeout( m_REPSOCKETTIMEOUT ); OutputStream cout = csock.getOutputStream(); InputStream cin = csock.getInputStream(); cout.write( RQB ); byte[] blwPBufferTemp = new byte[MAXBUFFERLEN]; byte[] blwPBufferHeader = new byte[16]; int len = cin.read( blwPBufferHeader, 0, 16 ); // tritt hier auf ! ! ! ! int nsize = 0; if (blwPBufferHeader[0] == BUFFER_START) { nsize = ByteHelper.getRSPDataSize( blwPBufferHeader ); int lenneu = 0; blwPBuffer = new byte[BUFFER_OFFSET + 1 + nsize]; for (int n = 0; n < BUFFER_OFFSET; n++) { blwPBufferTemp[n] = blwPBufferHeader[n]; } while( (nsize + BUFFER_OFFSET) > len ) { lenneu = cin.read( blwPBufferTemp, len, (nsize - len + BUFFER_OFFSET) ); len += lenneu; } for( int k = 0; k < len; k++ ) { blwPBuffer[k] = blwPBufferTemp[k]; } cin.close(); cout.close(); csock.close(); WorkerErrorStatus.getInstance().setErrorWS( com.gselectronic.worker.status.IWorkerErrorStatus.WORKERERRORSTATUS_NOERROR ); } return blwPBuffer; }
Gruß
KlausGeändert von vfl_freak (20.01.12 um 17:33 Uhr)
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
20.01.12 17:32 #5Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
Ähnliche Themen
-
MSSQL Server Connection reset
Von bernd00 im Forum JavaAntworten: 8Letzter Beitrag: 07.09.11, 23:32 -
Erst Connection Reset dann Broken Pipe
Von H3llGhost im Forum JavaAntworten: 2Letzter Beitrag: 10.11.09, 16:44 -
java.net.SocketException: Software caused connection abort: recv failed
Von RealHAZZARD im Forum JavaAntworten: 3Letzter Beitrag: 18.03.09, 08:14 -
Problem mit MySQL connection(Connection aufbauen beenden und wieder connecten)
Von FBIagent im Forum C/C++Antworten: 1Letzter Beitrag: 04.04.06, 20:06 -
fehlermeldung: connection reset by ....
Von 4nd3rl im Forum Linux & UnixAntworten: 3Letzter Beitrag: 04.04.03, 10:28





Zitieren


),
Login





