Я знаю, что TCP не может потерять пакеты, потому что он потоковый. Я пытаюсь отправить (с nodejs) поток с 5 "52" пакетами. Формат его должен быть (1,52,1,52,1,52,1,52,1,52) где 1 - длина пакета. Я получаю тот же поток как в консоли C# Приложения на том же ПК, какой сервер. И на Android-устройстве с Java-приложением в локальной сети.Утерянные данные в потоке TCP
C# выход:
"1,52,1,52,1,52,1,52,1,52"
Но выход Java выглядит следующим образом:
«1,52,1 , 52,52,1,52,1,52"
Nodejs код:
b = new Buffer(1);
b.writeInt8(1,0);
this.sock.write(b);
this.sock.write(String.fromCharCode(event)); //event == 52
Java код:
while(true)
{
int a = in.read(); //in is an instance of InputStream
if(a!= -1)Log.v(getTag(),""+a);
}
У кого-нибудь есть идея, в чем проблема?
Заранее спасибо
/UPDATE: socket.bytesWritten возвращает 10, так что это не на стороне сервера.
Какой тип объекта 'sock' (от' this.sock')? –
Это объект сокета, полученный при установлении соединения с сервером от net.createServer (функция (сокет)) –