TCP流中丢失的数据

时间:2014-02-21 10:27:24

标签: c# java android node.js tcp

我知道TCP不能丢失数据包,因为它是流式传输的。我正在尝试发送(使用nodejs)一个包含5“52”数据包的流。它的格式应为(1,52,1,52,1,52,1,52,1,52),其中1是数据包的长度。 我在同一台PC上的C#console App中收到相同的流,服务器是什么。 在本地网络中使用Java应用程序的Android设备上。

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,因此它不在服务器端。

1 个答案:

答案 0 :(得分:1)

确定。那是我的坏事。在java应用程序内部我有一个丢失的连接处理程序,它读取一个字节来检查连接是否仍然存在,它是从流中获取它。