Мои данные TCP редко, но достаточно, чтобы они были заметны, получены в неправильном порядке или полностью потеряны.TCP Данные получены в неправильном порядке/потеряны
Например, мой клиент будет отправлять Log:joehot200;Password
, и сервер будет получать ehot200;Password
Я проверил TCP - received in wrong order и TCP data occasionally received in wrong order and incomplete и ни помощи. Кажется, у них есть не ответы, которые не дают достаточно подробностей или не решают проблему.
Я использую этот код для отправки данных на клиенте и на сервере:
public void sendData(String data){ //Server code
try{
System.out.println("Sent " + data);
DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream());
outToClient.writeBytes(data + "\n");
}catch (Exception e){
e.printStackTrace();
}
}
public void sendData(String data){ //Client code
try{
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes(data + "\n");
}catch (Exception e){
}
}
Это своего рода данные, которые отправить/получено:
Data: UID:1;Pitch:0.0
FROM SERVER: Name:1;joehot200
Data: Name:1;joehot200
FROM SERVER: Type:1;2
Data: Type:1;2
FROM SERVER: FlaBag:1;0
Data: FlaBag:1;0
FROM SERVER: Teall-104,442m:1;1
Data: Teall-104,442m:1;1
FROM SERVER: 6.572884235079,51.82797146606425,5670.44316581469,0
В самом деле, глядя при этом выше данные, даже это неправильно! У меня нет пакета, начинающегося с FlaBag или Teall.
Что здесь не так?
Я отправляю данные из нескольких потоков, хотя я, очевидно, получаю все данные в одном потоке.
Вы случайно используете несколько потоков? Может быть состояние гонки. – Bauss
Этого действительно не должно быть. Ваш O/S должен заботиться о неподходящих или отсутствующих пакетах для вас. – Alnitak
@ L33TS "Состояние гонки"? – Joehot200