Death Overlord
Mitglied
Hi, ich habe ein Spiel programmiert für das ich jetzt noch einen Multiplayermodus über LAN machen will. Ich habe dazu eine Application (Server) die mehrere Threads hat in denen Variablen von den Spielapplicationen empfangen und an die anderen Spieler zurück geschickt werden. Das funktioniert auch alles gut so, aber leider meistends nicht flüssig sondern nur mit sehr starken Rucklern.
Mein Lehrer hat mir gesagt dass ich die Daten puffern muss die ich verschicke.
Ich hab mir jetzt ein paar Sachen durchgelesen. In den Texten hieß es dass ich die Methode flush() benutzen soll, aber ich märke keinen unterschied.
Muss man die Methode flush() eigendlich nur einmal ausführen und kann dann ewig Daten verschiecken?
Hier ein Stück meines Quellcodes:
Mein Lehrer hat mir gesagt dass ich die Daten puffern muss die ich verschicke.
Ich hab mir jetzt ein paar Sachen durchgelesen. In den Texten hieß es dass ich die Methode flush() benutzen soll, aber ich märke keinen unterschied.
Muss man die Methode flush() eigendlich nur einmal ausführen und kann dann ewig Daten verschiecken?
Hier ein Stück meines Quellcodes:
Code:
...
server = new Socket(sServerIP,iPort);
in = new Scanner( server.getInputStream() );
out = new PrintWriter( server.getOutputStream(), true );
out.flush();
...
Code:
public void xy (int outX, int outY) {
out.println(outX);
out.println(outY);
switch(inSpieleranzahl) {
case 4:
inXy[3] = new Point2D.Double(Double.parseDouble(in.nextLine()),Double.parseDouble(in.nextLine()));
case 3:
inXy[2] = new Point2D.Double(Double.parseDouble(in.nextLine()),Double.parseDouble(in.nextLine()));
case 2:
inXy[1] = new Point2D.Double(Double.parseDouble(in.nextLine()),Double.parseDouble(in.nextLine()));
case 1:
inXy[0] = new Point2D.Double(Double.parseDouble(in.nextLine()),Double.parseDouble(in.nextLine()));
break;
}
}