我知道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,因此它不在服务器端。
答案 0 :(得分:1)
确定。那是我的坏事。在java应用程序内部我有一个丢失的连接处理程序,它读取一个字节来检查连接是否仍然存在,它是从流中获取它。