Java TCPサーバーとAndroidクライアントを使用して、Android用の基本的なマルチプレイヤーゲームを作成しようとしています。問題は、TCPパケットを送信するときの速度が遅いことです。 Thread.sleep(100)を置くと動作します。Java TCPサーバー - Androidクライアントのパケット損失
サーバ側:
for(int i = 0; i<50; i++) {
client.send("test_" + i);
}
クライアントがちょうど受け取った(〜3パケット)睡眠と
test_0
TEST_1
サーバー:受信
for(int i = 0; i<50; i++) {
client.send("test_" + i);
Thread.sleep(100);
}
クライアント〜45
EDIT:クライアント側:
while (true) {
if (!running)
break;
inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"), 2 * 1024);
String rawRecervied = inFromServer.readLine();
if (rawRecervied == null) {
close();
break;
}
final String recervied = rawRecervied.substring(2); // for skip utf bom chars
new Thread() {
public void run() {
listener.dataRecervied(recervied);
Log.e("TCP recervied", recervied); // debug
}
}.start();
}
クライアントコードを貼り付けることはできますか? – Sid
クライアントコードが追加されました – musa
BWitchedさんの提案している間にBufferedReaderを作成してください(真) – Sid