2014-03-26 100 views
0

我在Node.js中为C#应用程序写一个本地服务器。 在我的C#代码我有类似的东西:Node.js TCP服务器数据丢失

for(int i = 0; i < 1000; i++) 
    SendMessageToNodeOverTCP(i); 

的消息从月线发送。 节点中的预期输出应该是:0,1,2,3,4,5,6,7,8,...,998,999。 但我得到的是:0,3,5,6,9,10,15,20,... 995,997,998,999。

我敢肯定,问题是出在Node.js的一面,我不知道,如果它真的丢失数据,或者如果我做错了什么......

我的JS代码如下:

function OnData(p_data){ 
    LogData(p_data); //display the numbers in a custom gui 
}; 

net.createServer(function (p_socket) { 
    p_socket.on('data', OnData); 
}).listen(p_port); 
+0

LogData是做什么的? – josh3736

+0

它是一种只显示“p_data”的自定义方法。 – user3466088

+0

你能设置'.setNoDelay(true)'到服务器实例,并回传结果吗? – Gntem

回答

0

我能解决我自己的问题......

后有点reasearch的我发现,在TCP有时它们层叠封装togheter。 在节点中,我获取数据,将它传递给一个流并从中创建一个类。 我要做的是检查数据流中是否有剩余数据,并处理该数据...

Thx伙计!