client/server kommunikation

Status
Nicht offen für weitere Antworten.
J

JPook

Gast
hallo,
ich habe mir einen server und einen client geschrieben. der client soll zum server über port 4444 eine verbindung aufnehmen. Dann soll alles was der client in die console eingibt beim server ausgegeben werden. Nur genau das klappt nicht und ich weiß absolut nicht, was an meinem code falsch ist. Compilieren geht, auch die Verbindung herstellen geht, aber die textausgabe beim server funktioniert nicht(oder der text wird erst garnicht in den outputstream des clients geschrieben)

hier mal der code:

Client Code:

Code:
import java.io.*;
import java.net.*;

public class Client 
{
    public static void main(String args[]) throws IOException
    {
        Socket server = null;
        OutputStream out = null;
        try
        {
            server = new Socket("localhost",4444);
            System.out.println("Connected to " + server.getInetAddress() + ":" + server.getPort());
        
            out = server.getOutputStream();
            OutputStreamWriter ou2 = new OutputStreamWriter(out);
            BufferedWriter ou3 = new BufferedWriter(ou2);
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String line = null;
            while (true)
            {    
                line = in.readLine();
                ou3.write(line);
                ou3.flush();
                if (line.equals("exit")) break;
            }
          
        }
        catch (IOException e)
        {
           System.out.println(e); 
        }
        finally
        {
            try
            {
                server.close();
            }    
            catch (IOException e2)
            {
                System.out.println("Verbindung zum Client nicht geschlossen!");
            }               
        }
    }
}

Server Code:
Code:
import java.io.*;
import java.net.*;

public class Server 
{
    public static void main(String args[]) throws IOException
    {
        ServerSocket server = null;
        Socket client = null;
        System.out.println("Warte auf Verbindung...");
        
        
        try
        {
            server = new ServerSocket(4444);
            while (true)
            {
                client = server.accept();
                System.out.println("mit Client über Port "+server.getLocalPort()+" verbunden");
                InputStream in = client.getInputStream();
                InputStreamReader inr = new InputStreamReader(in);
                BufferedReader inw = new BufferedReader(inr);
                String line=null;
                line = inw.readLine();
                do
                {
                    if(line != null)
                    {
                       System.out.println(line);
                    }
                } while ((line=inw.readLine()) != null);
              
            }
        }
       	catch(IOException e) 
        {
            System.err.println("Verbindung unterbrochen" + e);
            System.exit(1);
	}
	finally 
        {
            try 
            {
                server.close(); 
            }
            catch(IOException e2)
            {
                
            }
        }
    }
}

Wer kann mir helfen?
 

Grizzly

Top Contributor
Ich habe mir das mal angeschaut. Hier mal mein leicht umformatierter Code:
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

	public static void main(String[] args) {
		ServerSocket server = null;
		Socket client = null;
		InputStream in;
		InputStreamReader inr;
		BufferedReader inw;
		String line;
		
		System.out.println("Warte auf Verbindung...");
		try {
			server = new ServerSocket(4444);
			while (true) {
				client = server.accept();
				System.out.println("mit Client über Port "
					+ server.getLocalPort() + " verbunden");
				System.out.println("1");
				in = client.getInputStream();
				System.out.println("2");
				inr = new InputStreamReader(in);
				System.out.println("3");
				inw = new BufferedReader(inr);
				System.out.println("4");
				while ((line = inw.readLine()) != null) {
					System.out.println(line);
				}
				System.out.println("Verbindung geschlossen.");
			}
		} catch (IOException ioe) {
			System.err.println("Verbindung unterbrochen" + ioe);
			ioe.printStackTrace();
			System.exit(1);
		} finally {
			try {
				server.close();
			} catch (IOException ioe) {
				ioe.printStackTrace();
			}
		}
	}

}
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;

public class Client {
	public static void main(String[] args) {
		Socket server = null;
		OutputStream out = null;
		OutputStreamWriter ou2;
		BufferedWriter ou3;
		BufferedReader in;
		String line;
		
		try {
			server = new Socket("localhost", 4444);
			System.out.println("Connected to " + server.getInetAddress() + ":"
				+ server.getPort());
			
			out = server.getOutputStream();
			ou2 = new OutputStreamWriter(out);
			ou3 = new BufferedWriter(ou2);
			in = new BufferedReader(new InputStreamReader(System.in));
			do {
				line = in.readLine();
				ou3.write(line + '\n');
				ou3.flush();
				System.out.println("Zeile [" + line + "] gesendet.");
			} while ((line != null) && (!line.equals("exit")));
		} catch (IOException ioe) {
			ioe.printStackTrace();
		} finally {
			try {
				server.close();
			} catch (IOException ioe) {
				System.out.println("Verbindung zum Client nicht geschlossen!");
				ioe.printStackTrace();
			}
		}
	}
}

Und? Die Änderung gefunden? ;)

Welche Entwicklungsumgebung benutzt Du eigentlich? NetBeans? Borland JBuilder? Eclipse? Zumindest bei Eclipse kann man nämlich sich da JavaDoc zu den Standard Klassen anzeigen lassen. Bei den anderen beiden IDEs müsste das eigentlich auch gehen. Da hättest Du es nämlich unter Umständen gesehen bzw. gelesen. :)

Ein weitere Tipp (so mache ich das zumindest):
Wenn etwas funktioniert, am besten jede Menge Debugging Meldung einbauen (siehe auch mein Code). Dann sieht man nämlich sehr schnell, wo es klemmt. Noch besser ist es, eine Logging Bibliothek einzubauen (bspw. Jakarta Commons Logging). :)
 
J

JPook

Gast
hallo,
ja hab die Änderung gefunden -> ou3.write(line + '\n');
Das \n hat gefehlt, danach gings auch mit meinem originalcode.

Darauf wär ich nun wirklich nie gekommen.

Ich benutze seit heute netbeans.
Habe bis jetzt JOE benutzt, aber JOE hat arge Probs mit Sockets (compilieren geht, aber beim ausführen kommt ne SocketException: socket error 10106). Da saß ich auch erstmal ne Stunde und hätte ich nich google gefragt und erfahren, dass das an dem editor liegt, säße ich wohl noch jezt über dem code.

Jedenfalls danke :)
 

MJA

Mitglied
Ansonsten, für die Bequemlichkeit, kannst du zum einen PrintStream verwenden. Der bietet dir eine Methode println(), die Automatisch an den Inhalt einen Zeilumbruch anfügt. Außerdem kannst du problemlos alle primitiven Datentypen und Strings damit ausgeben. Eignet sich jedoch nicht für Binärdaten.

Code:
PrintStream printStream = new PrintStream(socket.getOutputStream());
printStream.println("blabla");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
L Ratschlag zur Umsetzung einer client-server-Kommunikation Netzwerkprogrammierung 6
R Server zu Client Kommunikation Netzwerkprogrammierung 11
V Socket UDP Server/Client Kommunikation sehr langsam Netzwerkprogrammierung 2
F Socket Server/Client Kommunikation Netzwerkprogrammierung 4
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
D Server-Client (Web) Kommunikation Netzwerkprogrammierung 9
E Client-Server-Kommunikation Netzwerkprogrammierung 13
C HTTP Studienarbeit Kommunikation via HTTP mit POST zwischen Server und Client Netzwerkprogrammierung 7
G Problem mit Client-Server Kommunikation Netzwerkprogrammierung 4
G unvollständige Daten: Http Client-Server-Kommunikation Netzwerkprogrammierung 2
M Client-Kommunikation ohne Server Netzwerkprogrammierung 7
S Kommunikation Fortran <-> Java auf Client-Server-Archi Netzwerkprogrammierung 2
G JINI über RMI // Client-Server Kommunikation Netzwerkprogrammierung 4
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
K C# Server - Android Client Netzwerkprogrammierung 0
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
E Thematik Client server Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
J Client Server - Serialisierung Netzwerkprogrammierung 8
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
K Client => Server Netzwerkprogrammierung 2
A ? Home-Network, Server/Client-Einrichtung Netzwerkprogrammierung 4
S Socket Server: ConnectionError vom Client erkennen Netzwerkprogrammierung 31
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
N Client-Server-Datenbank Netzwerkprogrammierung 13
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
B Client/Server Connection Problem Netzwerkprogrammierung 2
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
T Server und Client verbinden nicht Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
Z Socket Server/Client vernünftiger Verbindungsabbruch Netzwerkprogrammierung 4
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
F TCP Server/Client Netzwerkprogrammierung 14
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
N eine klasse mit server & client Netzwerkprogrammierung 5
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12

Ähnliche Java Themen

Neue Themen


Oben