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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren