Problem bzgl. Sockets / Server-Client-Struktur

S

SimonSocket

Gast
Hallo,

ich habe folgendes Ziel mit meinem Java-Programm:

1. Server & Client sollen per Socket(s) Daten austauschen, sprich: Server wird gestartet, wartet (listened) auf Daten vom Client

2. Client wird nach Server gestartet, teilt diesem mit der er nun da ist (ohne irgendwelche Daten zu schicken, soll dem Server nur mitteilen, dass er nun da ist und nun mit Server Daten austauschen kann... quasi einfach "Hallo" sagen)

3. Server schickt Daten an Client (in meinem Fall erstmal nur 2 Zahlen, die addiert werden sollen [12+10])

4. Client empfängt Daten vom Server, addiert die beiden Zahlen und gibt das Ergebnis zurück [12 + 10 = 22]

5. Server bekommt Ergebnis, gibt dies über Console aus und wartet anschließend auf neue Anfragen vom Client

Dazu habe ich jeweils folgenden Quellcode für Client und Server geschrieben:

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

public class kleinerServer {

	  ServerSocket server = new ServerSocket (7583);
	  MiniServer () throws IOException {
	  while (true) {
	  Socket client = server.accept();
	  InputStream input = client.getInputStream();
	  OutputStream output = client.getOutputStream();
	  output.write ( 12 );
	  output.write ( 10 );		  
	  output.flush(); // alle Bytes im Puffer abschicken
	  System.out.println( input.read () );
	  input.close();
	  output.close();
	  server.close();

	  }
}


public static void main (String args[]) {

	try {
		kleinerServer server = new kleinerServer();
	    }

	catch (IOException e) 
	    {
		System.out.println(e);
	    }
	}
}
Code Client:
-----------
Java:
public class Client () throws IOException {
  			
  		  Socket server = new Socket ("localhost", 7583);
  		  InputStream input = server.getInputStream();
  		  OutputStream output = server.getOutputStream();
  		  int zahl1 = input.read();
  	 	  int zahl2 = input.read();
  		  output.write (zahl1+zahl2);
  		  output.flush();
  		  input.close();
  		  output.close();
		  
  }	
	  
  
public static void main (String args[]) {

		try {
			Client client = new Client();
		    }

		catch (IOException e) 
		    {
			System.out.print(e);
		    }
}



Nun habe ich folgendes Problem:

Es wird immer nur die erste Zahl über die Konsole ausgegeben (die 12), aber nicht das addierte Ergebnis (22). Außerdem scheint trotz flush() der Puffer nicht immer gelehrt zu werden, in einem ersten Versuch habe ich statt 12 als erste Zahl 5 genommen und manchmal kommt bei mir immer noch die 5 als Ausgabe in der Konsole.

Suche schon seit gut einer Stunde meinen Fehler im Quellcode, aber derzeit scheine ich etwas betriebsblind zu sein, zumindest haben mich alle meinen eigenen Lösungsversuche bisher leider nicht zum Ziel gebracht.

Würde mich sehr freuen, wenn mir jemand weiterhelfen kann! Vielen Dank im Voraus für eure Hilfe! :)
 
Zuletzt bearbeitet von einem Moderator:
S

SimonSocket

Gast
Kleiner Nachtrag:

In Zeile 6 des Server-Codes muss es natürlich statt

[JAVA=6]"MiniServer () throws IOException {" [/code]

heißen

[JAVA=6]"kleinerServer () throws IOException {" [/code]

Sorry, hab den Fehler im Posting/Quellcode eben erst gesehen, aber das behebt mein grundsätzliches Problem leider auch nicht...
 
S

SlaterB

Gast
Java:
public class Test {
    public static void main(String[] args) throws Exception {

        Runnable r = new Runnable()     {
                public void run()   {
                    try     {
                        kleinerServer server = new kleinerServer();
                    }  catch (Exception e)   {
                        throw new RuntimeException(e);
                    }
                }
            };
        new Thread(r).start();

        Thread.sleep(2000);
        Client client = new Client();
    }
}

class kleinerServer {
    kleinerServer() throws IOException {
        ServerSocket server = new ServerSocket(7583);
        while (true)   {
            Socket client = server.accept();
            InputStream input = client.getInputStream();
            OutputStream output = client.getOutputStream();
            output.write(12);
            output.write(10);
            output.flush(); // alle Bytes im Puffer abschicken
            System.out.println(input.read());
            input.close();
            output.close();
        }
    }
}

class Client {
    public Client()   throws IOException  {
        Socket server = new Socket("localhost", 7583);
        InputStream input = server.getInputStream();
        OutputStream output = server.getOutputStream();
        int zahl1 = input.read();
        int zahl2 = input.read();
        output.write(zahl1 + zahl2);
        output.flush();
        input.close();
        output.close();
    }
}
läuft in einem Programm, habe
server.close();
rausgenommen, sonst gibts ne Exception

Ausgabe 22 bei mir, da fällt mir nix zu ein
 
S

SimonSocket

Gast
Dank dir für deine schnelle Antwort!

Wenn ich es jetzt als eine Java-Datei ausführe, funktioniert es bei mir auch. Wenn ich es allerdings in mein OSGi-Framework mit Eclipse übertrage, dann funzt es leider nicht mehr...

Naja, OSGi is leider mit seiner Bundle-/Package-Struktur doch um einiges vertrackter... :-/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Socket Problem mit den WebSocket Antworten der Discord API Netzwerkprogrammierung 0
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
S Problem bei dem Bluetoothverbindungsaufbau Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
M Netty - TCP Problem Netzwerkprogrammierung 4
L Socket Problem mit Server Netzwerkprogrammierung 1
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
M Problem bei Socket (MultiplayerSpiel) Netzwerkprogrammierung 4
M Socket CDI, Websocket reference Problem ! Netzwerkprogrammierung 2
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
G apache httpClient Problem. Netzwerkprogrammierung 5
H Problem mit ObjectStreams Netzwerkprogrammierung 3
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
D Socket BufferedWriter/Reader Problem Netzwerkprogrammierung 1
Maxim6394 Problem mit Socks5 Implementierung Netzwerkprogrammierung 0
C Handle Connection Problem Netzwerkprogrammierung 3
E HttpUrlConnection Cookie Problem Netzwerkprogrammierung 0
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
E einfaches Problem: Session-Handling bei Servlets Netzwerkprogrammierung 5
G Problem mit einem FileWatcher Netzwerkprogrammierung 7
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
B Client/Server Connection Problem Netzwerkprogrammierung 2
G Problem mit STATIC-Verständnis Netzwerkprogrammierung 8
S Umstellung AS400 auf Postgre - Problem beim Arbeiten mit Metadaten Netzwerkprogrammierung 2
J Facelets Include Rendered Problem Netzwerkprogrammierung 2
J Socket Problem mit C++/Java Netzwerkprogrammierung 20
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
G Socket NIO2 Problem mit AsynchronousSocketChannel beim Schließen Netzwerkprogrammierung 3
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 7
B Socket Problem mit Netzwerkchat Netzwerkprogrammierung 21
D RMI Problem beim shutdown von verteilter CORBA-Anwendung Netzwerkprogrammierung 6
Maxim6394 ipv6 Problem Netzwerkprogrammierung 2
Maxim6394 Proxyserver Performance Problem Netzwerkprogrammierung 11
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 5
B RMI und Problem mit rmic-Tool Netzwerkprogrammierung 3
C FTP storeFileStream Problem Netzwerkprogrammierung 3
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
D JavaMail - Mailsabrufen Problem (imap) Netzwerkprogrammierung 12
J HTTP Übersetzung yahoo babelfish - Zeichensatz-Problem Netzwerkprogrammierung 6
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Problem beim Datenempfang Netzwerkprogrammierung 2
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
N NIO Problem beim speziellen Behandeln von einzelnen Benutzern Netzwerkprogrammierung 13
D Thread problem Netzwerkprogrammierung 3
T Servlets JSP: Tomcat Problem Netzwerkprogrammierung 4
K Client - Server Problem Netzwerkprogrammierung 16
T RMI Problem Client-Server Netzwerkprogrammierung 2
P RMI Stub Problem Netzwerkprogrammierung 3
D Socket UDP Übertragungs Problem Netzwerkprogrammierung 7
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 2
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 6
D Problem mit ObjectInputStreams Netzwerkprogrammierung 10
D Socket Problem mit InputStreamReader Netzwerkprogrammierung 3
N CRC32 CheckSum Problem bei UDP Netzwerkprogrammierung 2
V Java Mail Api - IMAP Problem Netzwerkprogrammierung 6
P RMI Problem Netzwerkprogrammierung 4
I Problem bei Outputstreamerzeugung in anderer Klasse als Socket Netzwerkprogrammierung 5
S Socket Problem mit Objektübertragung Netzwerkprogrammierung 16
Shoox Reader / Writer Problem Netzwerkprogrammierung 2
S Problem mit 2 Serversockets unter Win XP Netzwerkprogrammierung 7
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
M RMI - Connection Problem Netzwerkprogrammierung 7
J Socket Client - Server Problem Netzwerkprogrammierung 4
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
E HTTP Problem beim Auslesen von Websiten Netzwerkprogrammierung 6
T Problem bei Findung der richtigen Architektur Netzwerkprogrammierung 3
AlexSpritze Authentication Problem bei WebServices Netzwerkprogrammierung 4
J Socket Problem -Proxies Netzwerkprogrammierung 2
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
F Konzept Problem Netzwerkprogrammierung 12
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
J Client server problem Netzwerkprogrammierung 3
W RMI Problem Netzwerkprogrammierung 4
M Problem mit Server Netzwerkprogrammierung 5
N Socket Java server c# client problem Netzwerkprogrammierung 7
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
R RMI Hibernate Problem Netzwerkprogrammierung 4
Z RMI Problem Netzwerkprogrammierung 11
F RMI problem mit RMI Netzwerkprogrammierung 3
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
H Log4j SocketAppender Problem Netzwerkprogrammierung 2
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
P Problem mit JOscarLib Netzwerkprogrammierung 6
0din SMTP Client - readline problem Netzwerkprogrammierung 4
C komisches Problem / ObjectInputStream erstellt sich nicht Netzwerkprogrammierung 5
W vista / win server 2003 netzlaufwerk problem Netzwerkprogrammierung 4
W Problem mit HTTP-Dateiübertragung Netzwerkprogrammierung 6
E Problem: netbeans 6.5 und webanwendung Netzwerkprogrammierung 6
C Problem mit Übertragung einer Klasse in RMI Netzwerkprogrammierung 10
B UDP Problem Netzwerkprogrammierung 25

Ähnliche Java Themen

Neue Themen


Oben