Java - Socket funktioniert nicht

Gast #4432694
Lesenswert?
• ▲
▼
Hi zusammen,

ich habe ein Problem. Mein Programm soll mit einem Server kommunizieren, 
wobei eine Anfrage an den Server geschickt wird, dieser antwortet und 
die Antwort an "meine" Client-Software zurückschickt.

Hier der Code:
1
Socket socket = new Socket(IP_Address,Port);
2
        
3
        OutputStream _output = socket.getOutputStream();
4
        PrintStream ps = new PrintStream(_output,true);
5
        
6
        
7
        ps.println("Frage?");  
8
        ps.flush();
9
        
10
      
11
      
12
        InputStream _input = socket.getInputStream();
13
        System.out.println("Antwort:  "+_input.toString());
14
        
15
        BufferedReader buff = new BufferedReader(new InputStreamReader(socket.getInputStream()));
16
        String answer = buff.readLine();
17
        System.out.println(answer);
18
        System.out.println("verf\u00FCgbare Bytes: " + _input.available());
19
        System.out.println(_input.toString());

Es kommt leider nichts bei meinem Programm an.
Auch scheint die Software nicht den String "Frage?" an den Server zu 
schicken.


Was mache ich falsch?!


Vielen Dank!
Gast #4433005
Lesenswert?
• ▲
▼
Hallo,

wenn zur Laufzeit keine Exception geworfen wird, dann würde ich 
Wireshark auf dem Client zum Einsatz bringen. Filter dort ggf. nach 
IP_Address und/oder Port. So kannst Du relativ schnell sicher stellen, 
ob tatsächlich nichts gesendet wurde.

VG, Chris
Persönliche Seite #4433206
Lesenswert?
• ▲
▼
Strukturiere erst mal deinen Code und entferne die unnötigen 
BuffereReader, PrintStream und zweifelhaften Ausgaben.

Auch wäre es sicher nicht verkehrt zu wissen welche Gegenstelle du 
ansprechen willst und einen vollständigen COmpilierbaren Code zu 
präsentieren.

Für mich sieht das ziemlich nach ohne Nachzudenken zusammenkopiert aus. 
Und wenn "der Server" dann noch ein HTTP Server z.B. ist geht das senden 
soc ganz sicher nicht.
Gast #4433223
Lesenswert?
• ▲
▼
Fritz B. schrieb:
> Auch scheint die Software nicht den String "Frage?" an den Server zu
> schicken.

Woher weisst du das?

Fritz B. schrieb:
> Es kommt leider nichts bei meinem Programm an.

Woher weisst du das?

In der Doku für BufferedReadre.readln() steht:
"Reads a line of text. A line is considered to be terminated by any one 
of a line feed ('\n'), a carriage return ('\r'), or a carriage return 
followed immediately by a linefeed.

Returns:
    A String containing the contents of the line, not including any 
line-termination characters, or null if the end of the stream has been 
reached"

Kommt also null zurück, oder hängt das Programm weil es auf ein 
Zeilenende wartet, das der Server nicht schickt.

Wie sieht der Server aus. Zu einer Kommunikation gehören immer zwei, und 
wenn der eine deutsch redet, und der zweite irokesisch, dann verstehen 
sie sich nicht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.