ServerSocket bleibt beim lesen von Input hängen

Status
Nicht offen für weitere Antworten.

tec1

Aktives Mitglied
Hallo,

ich habe ein einfaches Beispiel für ein ServerSocket und ein Socket welches als Client fungiert. Im Prinzip funktioniert alles bis auf das Lesen des Inputs vom Client, hier bleibt der Server hängen. Mittlerweile fällt mir nichts mehr ein, zumal das Beispiel mit einfachem InputStream und OutputStream funktioniert, hier kann ich aber nur primitive Integer zwischen Client und Server austauschen. Wo ist mein Denkfehler? Ich für jede Hilfe dankbar.

Anbei der Code des Servers:

Java:
package de.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MyTestServer {

	private ServerSocket _server;
	private int _nCountOfRequests;

	public MyTestServer() throws IOException
	{
		_nCountOfRequests = 0;
	}

	public void startServer(int nPort)
	{
		System.out.println("startServer method");
		
		try
		{
			_server = new ServerSocket(nPort);
		} catch (IOException e1)
		{
			System.out.println("start of server failed");
			e1.printStackTrace();
		}
		
		while (true)
		{
			try
			{
				Socket client = _server.accept();
				
				_nCountOfRequests++;
				
				BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream()));
				PrintWriter output = new PrintWriter(client.getOutputStream());
				
				// hier bleibt er haengen
				StringBuffer inputText = new StringBuffer(input.readLine());
				
				System.out.println("server input: "+inputText);
				
				output.write(new String("_nCountOfRequests="+_nCountOfRequests+"; input: "+inputText));
				output.flush();
				
				input.close();
				output.close();
			} 
			catch (IOException e)
			{

			}
		}
	}

}

Der code des Clients:

Java:
package de.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyTestClient {

	public MyTestClient()
	{

	}

	public void connectToServer(int nPort) throws UnknownHostException, IOException
	{
		Socket server = new Socket("localhost", nPort);
		PrintWriter output = new PrintWriter(server.getOutputStream());
		BufferedReader input = new BufferedReader(new InputStreamReader(server.getInputStream()));
		
		output.write("hello server");
		output.flush();
		
		String line;
		while ((line = input.readLine()) != null)
		{
			if (line.length() == 0)
				break;
			
			System.out.println("return from server:"+line);
		}

		server.close();
		input.close();
		output.close();
	}
}

Der code zum starten des Servers:

Java:
package de.test;

import java.io.IOException;

public class StartServer {

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		int nPort = 9900;

		try
		{
			System.out.println("start server");
			MyTestServer server = new MyTestServer();
			server.startServer(nPort);
		} catch (IOException e)
		{
			e.printStackTrace();
		}

	}

}

Der code zum starten des Clients:


Java:
package de.test;

import java.io.IOException;
import java.net.UnknownHostException;

public class StartClient {

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		System.out.println("start client");
		int nPort = 9900;

		MyTestClient client = new MyTestClient();
		try
		{
			client.connectToServer(nPort);
		} catch (UnknownHostException e)
		{
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}

	}

}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
der Client liest
> input.readLine()

der Server schreibt
> output.write(new String("_nCountOfRequests="+_nCountOfRequests+"; input: "+inputText));
kein Zeilenumbruch, wie soll da eine ganze Line vom Client gelesen werden

new String() übrigens bitte quasi nie benutzen,
output.write("_nCountOfRequests="+_nCountOfRequests+"; input: "+inputText);
geht genauso

edit:
bzw. in der anderen Richtung genauso, Client schreibt
> output.write("hello server");
ohne Zeilenumbruch \n
 

tec1

Aktives Mitglied
Slater, du bist mein Held :) Jetzt geht allles.

Es ist doch immer wieder so, dass die Bugs, die am schwersten zu finden sind, irgendwelche blöden Dinge sind.

P.S.: Ich bin ein bisschen aus der Übung
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Custom E Mail Adresse mithilfe Serversocket oder ähnliches Netzwerkprogrammierung 21
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D ServerSocket - Socket Verbindungsart Netzwerkprogrammierung 3
J 1 Socket - 2 Serversocket Netzwerkprogrammierung 4
J Client - Serversocket Netzwerkprogrammierung 1
Seikuassi Socket ServerSocket mehrmals erzeugen Netzwerkprogrammierung 1
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
J ServerSocket sauber beenden Netzwerkprogrammierung 3
H ServerSocket.accept() unterbrechen Netzwerkprogrammierung 3
TheJavaKid ServerSocket beendet mit PuTTy Netzwerkprogrammierung 9
T ServerSocket.accept Rückgabetyp casten Netzwerkprogrammierung 3
P Socket Daten senden mit ServerSocket? Netzwerkprogrammierung 2
4 Socket Kann kein ServerSocket erstellen Netzwerkprogrammierung 4
D Socket ServerSocket Push Netzwerkprogrammierung 5
G ServerSocket.accept() überschreibt IP-Adresse Netzwerkprogrammierung 4
C serversocket.accept() klappt nicht Netzwerkprogrammierung 10
Tobse HTTP ServerSocket HTTP Netzwerkprogrammierung 4
X FAQ Frage - Netzwerkgrundlagen - ServerSocket und Socket Netzwerkprogrammierung 4
M Wahrnehmen, dass ServerSocket geschlossen wurde Netzwerkprogrammierung 14
M ServerSocket.accept() abbrechen Netzwerkprogrammierung 8
Schandro Herausfinden ob hinter einem Port bereits ein ServerSocket steckt Netzwerkprogrammierung 2
2 Class mit ServerSocket erbt von Thread? Netzwerkprogrammierung 3
T Java Socket und ServerSocket über Internet-IP? Netzwerkprogrammierung 9
dayaftereh serverSocket.accept(); Wecken Netzwerkprogrammierung 2
G Frage zu Serversocket-Beispiel aus der FAQ Netzwerkprogrammierung 17
D Komisches Fenster bei Serversocket Netzwerkprogrammierung 2
M Kommunikation zwischen ServerSocket und Socket Netzwerkprogrammierung 2
F ServerSocket im internet zugänglich machen Netzwerkprogrammierung 15
H ServerSocket -> Zugriff nur von localhost Netzwerkprogrammierung 6
P Serversocket schmeißt immmer EOFEXCEPTION Netzwerkprogrammierung 2
A serversocket soll anfrage vom handy entgegennehmen Netzwerkprogrammierung 4
P Problem mit Socket und ServerSocket Netzwerkprogrammierung 2
S ServerSocket merkt nicht, wenn keiner mehr da ist Netzwerkprogrammierung 8
J ServerSocket vs. DatagramSocket Netzwerkprogrammierung 2
A ServerSocket prinzipielle Frage Netzwerkprogrammierung 5
D Problem ServerSocket global Netzwerkprogrammierung 3
J ServerSocket schließen / öffnen im Programmverlauf Netzwerkprogrammierung 4
G einfache Frage zu ServerSocket ... Netzwerkprogrammierung 5
M Dateidownload per FTP wird immer langsamer und bleibt dann stehen Netzwerkprogrammierung 3
M Channels.write() bleibt hängen Netzwerkprogrammierung 5
OnDemand Json Objekt leeres Array beim lesen Netzwerkprogrammierung 9
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
A sporadischer Fehler beim Schreiben auf NAS Netzwerkprogrammierung 2
A Automatisches Update beim Starten Netzwerkprogrammierung 1
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
M Nur die erste Nachricht kommt beim Server an Netzwerkprogrammierung 11
M jsf-seite beim hinzufügen einer csv-datei in einen ordner aktualiseren Netzwerkprogrammierung 0
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
A Probleme beim Klassen-Import von sun.misc. ... Netzwerkprogrammierung 19
B Probleme beim ersten Netzwerkprogramm Netzwerkprogrammierung 3
S Umstellung AS400 auf Postgre - Problem beim Arbeiten mit Metadaten Netzwerkprogrammierung 2
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
G Socket NIO2 Problem mit AsynchronousSocketChannel beim Schließen Netzwerkprogrammierung 3
Z Socket Probleme beim Senden und Empfangen Netzwerkprogrammierung 5
D RMI Problem beim shutdown von verteilter CORBA-Anwendung Netzwerkprogrammierung 6
Z Probleme beim Senden von Nachrichten an den Server Netzwerkprogrammierung 9
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
C ObjectInputReader wirft beim zweiten Aufruf eine Exception Netzwerkprogrammierung 3
Y RMI Initialisierung beim Server Netzwerkprogrammierung 10
B Socket Aufhängen beim Lesen Netzwerkprogrammierung 4
C Socket Probleme beim Lesen und Schreiben aus/in einen Socket Netzwerkprogrammierung 2
M Problem beim Datenempfang Netzwerkprogrammierung 2
DEvent Keine IOException beim schreiben Socket Netzwerkprogrammierung 3
M Authentifizierung beim Start von Java-Applets Netzwerkprogrammierung 2
N NIO Problem beim speziellen Behandeln von einzelnen Benutzern Netzwerkprogrammierung 13
E HTTP Problem beim Auslesen von Websiten Netzwerkprogrammierung 6
G Kryptische Zeichen beim Auslesen einer Website Netzwerkprogrammierung 11
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
P Probleme beim weiter senden von Datein Netzwerkprogrammierung 10
S Threads beim Server koordinieren Netzwerkprogrammierung 5
K TrafficClass eines UDP Pakets kommt beim Empfänger nicht an Netzwerkprogrammierung 5
T Pfadangabe beim kopieren übers Netzwerk Netzwerkprogrammierung 5
Q NullPointExeption beim Versuch byte[] zu senden/writen Netzwerkprogrammierung 3
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
G Blockieren beim Öffnen der In und Outputstreams Netzwerkprogrammierung 2
I Problem beim empfangen von Daten (Zahlen) Netzwerkprogrammierung 7
J Was bedeutet: Address already in use: connect (beim client?) Netzwerkprogrammierung 4
Rontu Problem beim Übertragen einer Datei Netzwerkprogrammierung 9
J Problem beim Senden von File Netzwerkprogrammierung 4
G unbekannte Zeichen beim senden und lesen Netzwerkprogrammierung 2
V Problem beim Senden von Dateien Netzwerkprogrammierung 4
P problem beim schließen eines Streams Netzwerkprogrammierung 6
J RMI Fehler beim Proxy Netzwerkprogrammierung 2
G Fehlermeldung beim Erzeugen der WSDL Datei unter Axis Netzwerkprogrammierung 2
C Session Problem beim Zugriff auf Webseiten Netzwerkprogrammierung 3
J while-Schleife / Abbruchbed. beim Einlesen eines Streams Netzwerkprogrammierung 4
M Fehlende Bits / Bytes beim kopieren Netzwerkprogrammierung 4
I Apache http-client: Problem beim Proxyaufruf Netzwerkprogrammierung 2
C RMI: Problem beim Aufruf einer Methode. Falsch gecastet? Netzwerkprogrammierung 8
T RMI - Probleme beim Starten des Clients Netzwerkprogrammierung 4
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
G ActionEvent klappt beim Chat nicht Netzwerkprogrammierung 5
megachucky RMI - AccessControlException beim Naming.lookup() Netzwerkprogrammierung 12
G Probleme mit Firewall beim empfangen von dateien über socket Netzwerkprogrammierung 6
J Problem beim versenden von eigenen Objekten über RMI Netzwerkprogrammierung 2
M sessionhandling beim webserver Netzwerkprogrammierung 5
D Bekomme Dummyspace beim Internetseiten auslesen Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben