client/server programm fehler !

Status
Nicht offen für weitere Antworten.
C

cb

Gast
ich habe eine einfache client/server programm geschrieben


zuerst starte ich den server, dann den client der sich zum server verbinded. dann tauschen die beiden ein paar nachrichten aus und der client beendet seine verbindung. der server wartet dann mit x = y.accept(); auf einen neuen client.
bis hierher funktioniert es problemlos.

wenn ich den client jetzt wieder starte bekomme ich beim client die fehlermeldung "java.net.SocketException: Connection reset" und beim server "java.lang.NullPointerException".


ganz verstehe ich das nicht, da ich ja den client nur ein 2. mal starte, also exakt das selbe programm das beim 1. mal funktioniert hat.


muss ich dem server auch irgendwie mitteilen das der client die verbindung cancelt ? bis jetzt hab ich nur beim client die verbindung mit y.close(); gecancelt.


bitte um hilfe
 

CelikBlek

Bekanntes Mitglied
kannst du die ausschlaggebenden zeilen posten.
zudem bist du falsch hier. es gibt eine sparte netzwerk prog.
 
C

cb

Gast
für mich war es eher eine anfängerfrage. tut mir leid


so ungefähr schaut der server aus:
Code:
.
ServerSocket server;
server = new ServerSocket(3141);

while(true) {
Socket client = server.accept();
//Programm
}
.


und so der client
Code:
.
Socket server = new Socket ( "localhost", 3141 );
//Programm
server.close();
.
 

CelikBlek

Bekanntes Mitglied
ja gut das sind die standard zeilen. was soll der server machen? was schickt der client usw.
Bsp.
Code:
// Server
public class Server {

    public Server(int port) throws IOException {
        ServerSocket server = new ServerSocket(port);
        while(true) {
            Socket client = server.accept();
            BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
            String clientName = in.readLine();
            System.out.println("New Client "+clientName+" vom "+client.getInetAddress);
            IrgendetwasmitThread  i_X = new IrgendetwasmitThread ();
            i_X.start();
        }
    }
}
Code:
// Client
public class Client extends Thread{
    ...
    try {
        socket = new Socket(server, port):
        ...
        this.start();
    }
    catch() {}
    ...
}
ich denke diese Sachen sollten reichen. Habe einige Zeilen ausgelassen. Wenn doch Bedarf ist posten.
 
C

cb

Gast
mein problem ist ja das eigentlich alles so läuft wie es soll, nur das wenn ich den client beende und nocheinmal starte, nichts mehr gesendet wird. nur ich weiß nicht warum
 

CelikBlek

Bekanntes Mitglied
das sollte eigentlich für den server egal sein. schau mal nach ob jeder client sein eigenen thread bekommt.
 
C

cb

Gast
ich starte ja jedes mal den selben client, das problem ist das es beim 1.mal starten funktioniert beim 2. mal starten geht gar nichts mehr.
 

CelikBlek

Bekanntes Mitglied
das habe ich schon verstanden. aber ich hatte gefragt was dein server macht !!! nicht client. was macht er? hängt der sich auf wenn ein client abschmiert?
 

CelikBlek

Bekanntes Mitglied
dann würde der server ja nur ein einzigen client verwalten können. das dürfte nicht der fall sein. ist auch NPE.
 
C

cb

Gast
der server liest einen string mit "String s = in.readLine();"ein. da bekommt er null zurück, obwohl der client eigentlich mit "out.println("start");" etwas sendet. nachdem der client das gesendet hat, bekomme ich beim client die fehlermeldung "java.net.SocketException: Connection reset"
 

Bleiglanz

Gesperrter Benutzer
dir ist schon klar, dass du, wenn du mehrere Clients gleichzeitig an deinen ServerSocket accepten willst, mehrere Threads verwenden musst?
 
C

cb

Gast
scheinbar hab ich mich nicht richtig ausgedrückt.

der server soll nur jeweils eine verbindung aktzeptieren. d.h zuerst verbinde ich den client ein mit dem server, dann beendet der client die verbindung und dann verbinde ich ihn noch einmal mit dem server.
 

Bleiglanz

Gesperrter Benutzer
RTFM

setReuseAddress

public void setReuseAddress(boolean on)
throws SocketException

Enable/disable the SO_REUSEADDR socket option.

When a TCP connection is closed the connection may remain in a timeout state for a period of time after the connection is closed (typically known as the TIME_WAIT state or 2MSL wait state). For applications using a well known socket address or port it may not be possible to bind a socket to the required SocketAddress if there is a connection in the timeout state involving the socket address or port.

Enabling SO_REUSEADDR prior to binding the socket using bind(SocketAddress) allows the socket to be bound even though a previous connection is in a timeout state.

When a ServerSocket is created the initial setting of SO_REUSEADDR is not defined. Applications can use getReuseAddress() to determine the initial setting of SO_REUSEADDR.

The behaviour when SO_REUSEADDR is enabled or disabled after a socket is bound (See isBound()) is not defined.
 

CelikBlek

Bekanntes Mitglied
das ist doch auch OK. aber sobald du den client beendest und neu verbindest hast du doch den zweiten client sozusagen. meldest du es richtig beim server ab?
 
C

cb

Gast
@ CelikBlek:

das war ja meine frage.

vor dem beenden des client schließe ich eingabe und ausgabestream sowie den socket.



@ Bleiglanz:

das hört sich ganz interessant an, muss mal darüber nachdenken
 
C

cb

Gast
jetzt hab ich es mit setReuseAddress(boolean on)probiert, allerdinfgs wieder die selbe fehlermeldung bekommen
 
C

cb

Gast
durch meine vielen versuche ist der code momentan in einem unlesbaren zustand.

ich hab das ganze jetz umgangen indem ich beim server den port schließe und gleich wieder öffne.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
I Server / Client Programm wie einen String übergeben? Java Basics - Anfänger-Themen 6
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
K Java Client > Python Server Java Basics - Anfänger-Themen 0
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
E Client Server Java Basics - Anfänger-Themen 12
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
O Server Client Problem Java Basics - Anfänger-Themen 2
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
X Applet - Client/Server Java Basics - Anfänger-Themen 2
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
B Server-Client mit Thread ausstatten Java Basics - Anfänger-Themen 3
D Client-Server Problem Java Basics - Anfänger-Themen 2
J Netzwerkrprogammierung Client - Server Java Basics - Anfänger-Themen 3
J Netzwerkprogrammierung Client/Server Java Basics - Anfänger-Themen 16
G ArrayListe vom Server nach Client schicken Java Basics - Anfänger-Themen 17
G JMS -> Wie Anmeldung vom Client an Server? Java Basics - Anfänger-Themen 4
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
G Java Server Client Programmierung Java Basics - Anfänger-Themen 3
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
D Server/Client Java Basics - Anfänger-Themen 8
H Server Client, es kommt nichts an. Java Basics - Anfänger-Themen 5
G [Hilfe] Fileupload: Client-Server Java Basics - Anfänger-Themen 9
S Server/Client Verbindung Java Basics - Anfänger-Themen 2
G Dateidownload Client-Server (jsp) Java Basics - Anfänger-Themen 4
G Zugriff vom 'Server auf Client' Java Basics - Anfänger-Themen 4
S Client-Server Java Basics - Anfänger-Themen 18
X client soll bat auf server ansprechen Java Basics - Anfänger-Themen 7
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
K [servcer/Client] Suche Server /Client Tutorial. Java Basics - Anfänger-Themen 2
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
B Email Client in der eigenen Software einbauen Java Basics - Anfänger-Themen 3
E SocketServer/Client stürzt ab. Address already in use. Java Basics - Anfänger-Themen 2
I Wann ist Client plattformunabhängig? Java Basics - Anfänger-Themen 22
E MCLauncher eigener Client workt nicht? Java Basics - Anfänger-Themen 4
I Unique client information in WebApp Java Basics - Anfänger-Themen 3
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
O Verriegeln, aber wo? Finde den Client der zu schließem ist. Java Basics - Anfänger-Themen 0
T Buffererwriter keine Exception obwohl Client weg Java Basics - Anfänger-Themen 2
N Client soll mehrere Antworten von Servern gleichzeitig empfangen Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
E Senden von Objects an Client. Variablenwerte kommen nicht an Java Basics - Anfänger-Themen 5
E Client hilfe!!! Java Basics - Anfänger-Themen 7
B RMI - Fehlermeldung auf dem Client Java Basics - Anfänger-Themen 6
E Client ergibt NULL? Java Basics - Anfänger-Themen 24
E Socket (Client) dauerhaft aktiv? Java Basics - Anfänger-Themen 9
E HTTP Client - Login durchführen? Java Basics - Anfänger-Themen 4
L Ip-Adresse für Client Java Basics - Anfänger-Themen 14
L Wegwerf Client Java Basics - Anfänger-Themen 26
L Client aktualisieren Java Basics - Anfänger-Themen 6
J DNS-Client Java Basics - Anfänger-Themen 2
J Simpler DNS Client Java Basics - Anfänger-Themen 20
M Flexiblen Client programmieren Java Basics - Anfänger-Themen 2
S Webservice: Dateien downloaden vom Webserver auf den Client Java Basics - Anfänger-Themen 7
G Ausg. in JSP erzeugen die als Antwort an Client gesch. wird Java Basics - Anfänger-Themen 2
K Client-Liste im Chat Java Basics - Anfänger-Themen 2
A Problem mit Ausgabe einer Liste über einen Client Java Basics - Anfänger-Themen 5
rambozola zugriff auf client bei j2ee anwendung Java Basics - Anfänger-Themen 10
G Mail Client öffnen Java Basics - Anfänger-Themen 9
T Datei über UDP verschicken . Speicherprobleme am Client Java Basics - Anfänger-Themen 4
R client-applikation? Java Basics - Anfänger-Themen 5
S smtp-Client programmieren Java Basics - Anfänger-Themen 9
F Wie kommen die Applets zum Client? Java Basics - Anfänger-Themen 7
T Client-Authentifizierung Java Basics - Anfänger-Themen 6
G http client Java Basics - Anfänger-Themen 4
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
HolyFUT Best Practice Architektur WebSocket Server Java Basics - Anfänger-Themen 1
S Server Java Basics - Anfänger-Themen 4
S Server Java Basics - Anfänger-Themen 3
M CS GO Server mit Java steuern Java Basics - Anfänger-Themen 3
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
W Netwerkprogrammierung und Http Server Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben