SocketError: SockedClosed

Status
Nicht offen für weitere Antworten.

iyurael

Mitglied
Hallo alle miteinander,

ich versuche seit 2-3Wochen Java zu lernen und bin gerade an einem Problem, wo ich meinen Fehler einfach nicht finde.
Es geht um sockets.
Was genau soll passieren: Das Programm startet, in der Main werden 2 Threads aufgerufen.
Der erste Thread dient als Server, soll also empfangene Nachrichten so, wie sie geschickt wurden, wieder ausgeben.
Der zweite Thread dient als Client, er soll ueber einen java.util.Scanner auf eine Eingabe warten und diese danach an den Server senden. Das ganze laeuft weder auf einem Rechner, so dass die Daten an sich selbst geschickt werden, noch funktioniert es, wenn ich den Client Teil auf dem ServerRechner auskommentiere und den Serverteil auf dem Clientrechner auskommentiere. Ich bekomme immer dieselbe Fehlermeldung: java.net.SocketException: Socket is closed.

Nun meine Klassen:

Die Main Datei: http://rafb.net/p/JCnJeQ15.html

Die Server Datei: http://rafb.net/p/vkp7ho43.html

Die Client Datei: http://rafb.net/p/WF4paI38.html


Es wuerde mir reichen, wenn man mir den Fehler aufzeigen könnte, danach versuche ich es selber weiter.

Vielen Dank,
iYurael

:)
 
G

Gast

Gast
Also ich würd dir raten lass die Sache mit den Thread raus. Kapier ehe nicht so ganz was die bewirken sollen.. Normale ablaufreihenfolge wäre:

Server starten, dann Client starten. Du brauchst also zwei eigenständige Programme.
 
S

SlaterB

Gast
du solltest bei beiden die gleiche Port-Nummer verwenden,
und bist du dir mit "192.168.0.182" sicher? mit "localhost" funktioniert zumindest der Connect auf gleichem Rechner

> public void Client()

ist übrigens eine schlecht benannte Methode,

ein Konstruktor lautet
public Client()

beim Server genauso
 

iyurael

Mitglied
Ah, natuerlich, der port ist natuerlich derselbe. Hatte ich zum testen geaendert, sorry.

Die Threads habe ich, damit ich nicht 2 Programme starten muss, sollte doch funktionieren.

Ja, die ip ist richtig.
Die Konstruktoren werde ich mal aendern.


Ich versuche mal noch bissl rum, schaue heute Abend wieder rein.

Schonmal vielen Dank fuer die wirklich schnelle Hilfe.
 
I

iyurael.

Gast
Hm, es laeuft einfach nicht.
Nur diesmal bekam ich eine Connection refues message.
Habe es mit localhost versucht, port 1234.

Bei dir laeuft es also, SlaterB?
Kannst du auch Zahlen eingeben und bekommst diese wieder ausgegeben?

Habe ich vielleicht irgendwas nicht ganz verstanden, kann immer nur eine Verbinung auf sein(als schlechtes Beispiel) oder andere Netzwerkdetails die ich noch nicht kenne?
 
S

SlaterB

Gast
Details sind immer denkbar, Firewalls z.B., aber bin da kein Experte,

was genau beim Empfang ging kann ich nicht sagen, lauter unübersichtliche CC-Meldungen um am Ende eine Endlosschleife 'Socket schon geschlossen'
 
I

iyurael.

Gast
Hm, scheint, als haette es bei dir auch nicht funktioniert befuerchte ich. In dieser Schleife lande ich naemlich auch immer.

Dennoch vielen Dank!
Ich versuche es weiter :)
(und hoffe auf weitere hilfreiche Tips).


iYurael
 
S

SlaterB

Gast
eine Connection-refused-Exception mit Programmabbruch und eine System.out.println()-Endlosschleife sind verschiedene Dinge
 
I

iyurael.

Gast
Ach verdammt, ich habe mein Problem oeben zu wenig beschrieben denke ich.

Die connection refused hatte ich vorhin einmal, die Endlosschleife hatte ich auch schon. Das meinte ich oben mit der SocketClosed Fehlermeldung. Haette vielleicht erwähnen sollen, dass das ne Endlosschleife ist.
 
S

SlaterB

Gast
na dann siehe es als gutes Zeichen, der connect klappt also
 
Status
Nicht offen für weitere Antworten.

Oben