SocketException: Connection reset

Status
Nicht offen für weitere Antworten.

Murkas

Mitglied
Hallo,

bei einer einzelnen Abfrage auf Port 43 der Denic bekomme ich folgende Fehlermeldung:

Code:
java.net.SocketException: Connection reset 
        at java.net.SocketInputStream.read(SocketInputStream.java:168) 
        at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411) 
        at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453) 
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183) 
        at java.io.InputStreamReader.read(InputStreamReader.java:167) 
        at java.io.BufferedReader.fill(BufferedReader.java:136) 
        at java.io.BufferedReader.readLine(BufferedReader.java:299) 
        at java.io.BufferedReader.readLine(BufferedReader.java:362) 
.... Meine Klassen
Der relevante Code

Code:
       Socket clientSocket = new Socket(url , 43); 
       PrintStream os = new PrintStream( clientSocket.getOutputStream() ); 
       os.println(this.sld+"."+this.tld); 
       BufferedReader in = new BufferedReader( 
                                          new InputStreamReader( clientSocket.getInputStream()) ); 
       String c; 
       while( (c=in.readLine()) != null) {    //Hier wird der Fehler geworfen
           ... 
       } 
       clientSocket.close();


Der Fehler wird beim Eintritt in die while-Schleife geworfen.

Der betroffene Rechner ist ein SuSE9.1-System.
Auf meinem Windows-Rechner funktioniert das Script ohne Probleme.

Hat jemand eine Idee, wo das Problem liegt?

Gruß
Murkas
 

Bleiglanz

Gesperrter Benutzer
readline ist immer gefährlich beim Arbeiten mit Sockets?

wenn kein gescheites zeilenende kommt was dann...
 

Mag1c

Top Contributor
Hi,

was steht den in "url", "sld" und "tld" ?
Evtl. mußt du noch ein flush() hinter das println(...) setzen.

Gruß
Mag1c
 

Bleiglanz

Gesperrter Benutzer
ach ja, für DNS Abfragen verwende lieber java.net.* (oder JNDI wenn du mehr brauchst)

google mal, ist ganz einfach mit java
 
G

Guest

Gast
Code:
       while( (c=in.readLine()) != -1) {    //Hier wird der Fehler geworfen 
           ... 
       }

MFG
BWA
 

Mag1c

Top Contributor
Hi,

ja ja, das hast du oben schon geschrieben, daß beim readLine der Fehler kommt. Du mußt doch aber erstmal sicher stellen, daß deine Anfrage korrekt ist und an den richtigen Server geschickt wird. Wenn das alles stimmt, kannst du nachforschen, warum der Server nicht antwortet.
Es sieht irgendwie so aus, als ob der Server deine Anfrage nicht mag und deshalb die Verbindung beendet, ohne etwas zurückzuschicken. Evtl. mußt du als Zeilenende ein 0x0D 0x0A schicken. Unter Linux schreibt println ja nur ein 0x0A hinten dran.

Gruß
Mag1c
 

.:BwA:.

Mitglied
Du kannst es doch einfach so machen

Code:
       Socket clientSocket = new Socket(url , 43); 
       PrintStream os = new PrintStream( clientSocket.getOutputStream() ); 
       os.println(this.sld+"."+this.tld); 
       BufferedInputStream in = new BufferedInputStream(clientSocket.getInputStream());
       String c; 
       
       for(int i = 0; (i=in.read()) != -1; )
        {
            c += (char)i;
            if((char)i == '\n')
            {
               ... deine Logik
              c = "";
            }
            
        }
       clientSocket.close();

Ich hab den Code ned getestet, schreib halt wenn er fehler auswirft.

MFG
BWA

PS: Das da oben war ich
 

Murkas

Mitglied
Hallo,

zunächst danke für Eure Mühen!

Also:
Ich habe jetzt mal das Codebeispiel von BwA 1:1 umgesetzt und bekomme trotzdem noch die selbe Fehlermeldung.

Allerdings habe ich mal nicht c sondern i ausgeben lassen. Also die Zeilenenden werden korrekt gesendet. Als Abschluß kommen 2 aufeinanderfolgende 10 was ja 0X0A 0X0A entspricht.
Auf einem anderen (Debian)-System läuft meine Ursprungsvariante ja auch rund. Und der Socket wird dann geschlossen, nur eben auf oder mit diesem System nicht. Vielleicht versteht er nicht, daß der Socket geschlossen ist? Ich meine, was bedeutet denn "Connection reset"? Doch wohl das der Socket geschlossen wurde, warum gibts dann eine Exception :bahnhof:

Trotzdem wird der Socket hier auf dem System nicht geschlossen, obwohl dann eigentlich nichts mehr kommen dürfte. Naja, ich frage jetzt einfach ab, ob 2 Zeilen gesendet wurden und beende dann die Schleife und schließe den Socket selbst .
Es sei denn, Ihr wißt noch irgendwas.

Nochmal vielen Dank für Eure Hilfe.
Muß wohl noch an meinen Problemlösungsstrategien feilen...

Lieben Gruß
Murkas
 

.:BwA:.

Mitglied
Da bock der Server etwas rum probiers noch mal so

Code:
        for (int i = 0; !clientSocket.isClosed() && ((i = in.read()) != -1); ) {
          if ( (char) i == '\n') {
                //blablabla....
                c = "";
          }
          else
          {
            c += (char) i;
          }
        }

Vergiss das clientSocket.close() fürs testen mal, da es auch sein kann dass er einen geschlossenen Socket nicht mehr schließen kann.

MFG
BWA

PS: Welcher server ist das??
 

Murkas

Mitglied
Hi,

mit Deiner neuen Lösung klappt es. Wobei ich doch schwer verwundert bin, da das Programm ja auch auf anderen Linux-Rechnern mit meiner ursprünglichen Version funktionierte. Egal, schön, daß es funktioniert!

Als Lernstoff nehme ich mit: :meld:
1) Rückgabe genau ansehen
2) Statt readLine benutze ich bei Sockets besser read(), weil mein gegenüber womöglich murxt.
:###
Vielen Dank

Gruß
Murkas

PS: Mein Gegner-Server ist übrigens wie erwähnt whois. de nic. de auf Port 43. mein Rechner ein SuSe Linux9.1 mit Java 1.5.0
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Socket Socket absichtlich so schließen, dass Gegenseite java.net.SocketException: Connection reset wirft Netzwerkprogrammierung 4
VfL_Freak Socket SocketException: Connection reset Netzwerkprogrammierung 11
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
M seltsam: java.net.SocketException: Connection reset Netzwerkprogrammierung 1
H java.net.SocketException: Software caused connection abort Netzwerkprogrammierung 4
L Email versenden mit Java funktioniert nicht, Fehlermeldungen: MessagingException & SocketException Netzwerkprogrammierung 10
M BufferedInputStream.Read wirft SocketException auf gültigem Socket Netzwerkprogrammierung 7
E java.net.SocketException: Unexpected end of file from server Netzwerkprogrammierung 2
M TCP Server / Client Socketexception bei Stringübergabe Netzwerkprogrammierung 3
D Server Socket läuft nicht -> java.net.SocketException: Netzwerkprogrammierung 4
W socketexception socket closed Netzwerkprogrammierung 2
K java.net.SocketException: socket closed Netzwerkprogrammierung 3
x46 Connection reset by peer: socket write error Netzwerkprogrammierung 6
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
Thalion TCP Connection zu langsam Netzwerkprogrammierung 2
S Client Server Connection Netzwerkprogrammierung 4
C Handle Connection Problem Netzwerkprogrammierung 3
R Socket InputStream readObject > Connection Reset Netzwerkprogrammierung 3
L ssh connection; Zugriff auf 'screen' Prozess Netzwerkprogrammierung 5
C Client connection per Portforwarding auf einen lokalen Serverport Netzwerkprogrammierung 3
M Connection refused? Netzwerkprogrammierung 2
D Connection refused Netzwerkprogrammierung 3
B Client/Server Connection Problem Netzwerkprogrammierung 2
C Socket Connection refused bei Internetverbindung - Welcher Port? Netzwerkprogrammierung 5
K Socket Exception Connection reset Netzwerkprogrammierung 9
C Socket Socket: Connection timed out Netzwerkprogrammierung 3
T Empfangen klappt Senden nicht - Connection timed out Netzwerkprogrammierung 12
H java.net.ConnectException: Connection refused Netzwerkprogrammierung 3
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
RELAXccc HTTP Connection timed out: connect ?an was kann es liegen? Netzwerkprogrammierung 4
G Exception: Connection reset by peer: socket write error Netzwerkprogrammierung 2
N Socket verliert die Connection. Netzwerkprogrammierung 4
A UCP Connection über Proxy möglich? Netzwerkprogrammierung 7
M RMI - Connection Problem Netzwerkprogrammierung 7
trash HTTP Internet Connection bei Proxy ?! Netzwerkprogrammierung 3
H RMI Connection refused bei RMI-Registry Netzwerkprogrammierung 10
S SSH-Connection - Auto-Vervollständigung mittels TAB Netzwerkprogrammierung 4
A Chatprogramm: Connection refused Netzwerkprogrammierung 4
T RMI RMI und VPN - callbackObject Connection refused Netzwerkprogrammierung 13
A Socket Client Server Connection wird aufgebaut aber keine daten geschickt. Netzwerkprogrammierung 5
J Connection Speed Test ohne Applet Netzwerkprogrammierung 5
0din Connection refused bei localhost?! Netzwerkprogrammierung 7
M FTP-Connection über FTP-Proxy Netzwerkprogrammierung 20
T Wie connection Reset abfragen/abfangen? Netzwerkprogrammierung 10
A RMI java.rmi.ConnectException: Connection refused to host: 1 Netzwerkprogrammierung 4
M chat funktioniert nicht (Connection refused: connect) Netzwerkprogrammierung 3
G InputStreamReader lässt TCP-Connection offen Netzwerkprogrammierung 9
X URL connection Problem Netzwerkprogrammierung 3
R ConnectException: Connection refused to host: 192.168.1.4 ? Netzwerkprogrammierung 8
sparrow Connection Reset bei Webserver, Java WebStart als Client Netzwerkprogrammierung 9
tfa RMI-Problem: Connection refused to host: 127.0.0.2 Netzwerkprogrammierung 4
G Connection zu MySQL ohne ODBC Netzwerkprogrammierung 8
IT-MaD Connection reset by peer: socket write error Netzwerkprogrammierung 2
B RMI & Connection refused to host Netzwerkprogrammierung 12
G httpUnit: Connection timed out Netzwerkprogrammierung 3
lhein java.io.IOException: Unable to establish loopback connection Netzwerkprogrammierung 4
Paule Connection Applet Servlet ohne Socket bzw RMI Netzwerkprogrammierung 2
B Multithreaded Server: Connection reset Netzwerkprogrammierung 4
T JDBC Verbindungsabbruch (Connection reset) Netzwerkprogrammierung 2
G MAC / IP Connection Netzwerkprogrammierung 10
M Problem: connection abbrechen und login erkennen Netzwerkprogrammierung 2
M Umlaute gehen bei URL Connection verloren Netzwerkprogrammierung 6
B RMI Connection Problem Netzwerkprogrammierung 13
T Dateien wia P2P Connection versenden Netzwerkprogrammierung 2
D Socketverbindung schlägt fehl - Connection refused: connect Netzwerkprogrammierung 4
R FTP Connection zu Server Netzwerkprogrammierung 4
M Ausgangsport für FTp-Connection festlegen??? Netzwerkprogrammierung 3
M ObjectOutputStream reset gibt IOException Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben