Hallo,
ich habe da einen Client in Java und einen Server in C.
Der Client sendet dem Server immer Daten über einen Socket.
Manche Daten (immer nur Zahlen) werden vom Server ausgewertet und dann direkt wieder an den Client, welcher ihm die Daten geschickt hat, zurückgesendet z.B. 1, 5 oder 20, 39. Die Zahlen werde also nur durchgeschleift!
Anderen Daten, nähmlich bestimmte Zahlen wie z.B. 200 oder 300 bewirken, dass allen Clients die zum Server verbunden sind entsprechende andere Daten bekommen. Ich schicke dem Server z.B. 200 und dann eine 3. Nun bekommen alle Clients Daten.
Das funktieniert soweit auch alles bis auf das an alle senden. Hier erstmal mein Client:
Und hier die Main Klasse wo ich die Daten vom Serverf abrufe:
Also wenn ich Daten zum Server schicke die dann an alle geschickt werden sollen, bekommt ich diese bei System.out erst angezeigt wenn ich dem Server Daten schicke dir nur mir zugesand werden sollen (bzw. einfach durchgeschliefen werde). Die Daten die ich dann bekomme sehe z.B. so aus:
Hoffe das Problem ist klar geworden. Irgendwie Bufferd der InputStream zu lange oder sowas?
Woran kann das liegen?
Achso: Wenn ich mich via Telnet zum Server verbinde und dann Daten an alle schicke, sehe ich die in Telnet sofort und auch ohne die Vier-Ecke.
Könnt ihr mir da helfen ?
DANKEEEEE
ich habe da einen Client in Java und einen Server in C.
Der Client sendet dem Server immer Daten über einen Socket.
Manche Daten (immer nur Zahlen) werden vom Server ausgewertet und dann direkt wieder an den Client, welcher ihm die Daten geschickt hat, zurückgesendet z.B. 1, 5 oder 20, 39. Die Zahlen werde also nur durchgeschleift!
Anderen Daten, nähmlich bestimmte Zahlen wie z.B. 200 oder 300 bewirken, dass allen Clients die zum Server verbunden sind entsprechende andere Daten bekommen. Ich schicke dem Server z.B. 200 und dann eine 3. Nun bekommen alle Clients Daten.
Das funktieniert soweit auch alles bis auf das an alle senden. Hier erstmal mein Client:
Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Client{
// Variablen
private int port = 4711;
private String serverName = "192.168.0.210";
// private String serverName = "localhost";
private Socket client;
private BufferedWriter out;
public BufferedReader in;
// Konstruktor
Client() throws IOException{
client = new Socket (serverName, port);
out = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
}
// Sendet Daten an den Server
public void sendData(String outgoing) throws IOException{
out.write(outgoing);
out.newLine();
out.flush();
}
}
Und hier die Main Klasse wo ich die Daten vom Serverf abrufe:
Code:
...
try {
client = new Client();
} catch (IOException e3) { e3.printStackTrace(); }
...
public void run(){
while(true){
try {
incoming = client.in.readLine();
System.out.println("Client empfängt: "+incoming);
}
} catch (IOException e) { }
try {
Thread.sleep(20);
} catch (InterruptedException e) { e.printStackTrace(); }
}
...
Also wenn ich Daten zum Server schicke die dann an alle geschickt werden sollen, bekommt ich diese bei System.out erst angezeigt wenn ich dem Server Daten schicke dir nur mir zugesand werden sollen (bzw. einfach durchgeschliefen werde). Die Daten die ich dann bekomme sehe z.B. so aus:
Hoffe das Problem ist klar geworden. Irgendwie Bufferd der InputStream zu lange oder sowas?
Woran kann das liegen?
Achso: Wenn ich mich via Telnet zum Server verbinde und dann Daten an alle schicke, sehe ich die in Telnet sofort und auch ohne die Vier-Ecke.
Könnt ihr mir da helfen ?
DANKEEEEE