2014-02-21 99 views
0

但是,我知道TCP不能丟失數據包,因爲它是流式傳輸的。我試圖發送(使用nodejs)一個包含5個「52」數據包的數據流。它的格式應該是(1,52,1,52,1,52,1,52,1,52),其中1是分組的長度。 我在同一臺PC上的C#控制檯應用程序中接收到相同的流,它是什麼服務器。 並在本地網絡中的Java應用程序的Android設備上。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); 
} 

有沒有人有一個想法是什麼問題?
在此先感謝

/更新: socket.bytesWritten返回10,因此它不在服務器端。

+0

什麼類型的對象是'sock'(來自'this.sock')? –

+0

net.createServer(函數(套接字))與服務器建立連接時收到的套接字對象從 –

回答

1

好的。那是我的不好。在java應用程序內部我有一個丟失的連接處理程序,它正在讀取一個字節來檢查連接是否仍然存在,它是從流中獲取它。