0
A
回答
0
TCP套接字只是字节流,没有消息边界,你需要计算占用的字节数,这个数字比较,从序言部分之一。
这里有一些代码可以满足您的需求。它是用CoffeeScript编写的,并且使用32位int来表示消息大小,因此您必须稍微调整一下。
remaining = 0
input = undefined
msgsize = 0
msbuf = new Buffer 4
msneeded = 4
sock.on 'data', (bytes) =>
start = 0
end = bytes.length
while start < bytes.length
if remaining == 0
msavail = (Math.min 4, bytes.length - start)
bytes.copy msbuf, msbuf.length - msneeded, start, start + msavail
msneeded -= msavail
continue if msneeded > 0
msneeded = 4
remaining = msgsize = msbuf.readUInt32LE 0
start += 4
input = new Buffer msgsize
end = (Math.min start + remaining, bytes.length)
bytes.copy input, msgsize - remaining, start, end
remaining -= (end - start)
start = end
@emit 'data', input if 0 == remaining
相关问题
- 1. 如何终止边界消息
- 2. 什么是消息边界?
- 3. http请求消息的边界
- 4. NPM是如何为其更新消息创建边界的?
- 5. 如何使UITableViewCell的边界消失?
- 6. 如何获取边界的边界值?
- 7. 如何去除核心图上边界的边界
- 8. 如何检查NTLM type3消息? (node.js)
- 9. 如何设置tkinter消息边框
- 10. 在node.js上取消激活YUI3的INFO消息?
- 11. 如何在另一个边界上制作部分有边界的圆?
- 12. Node.js Bot拉链接消息
- 13. 了解node.js错误消息
- 14. eclipse上的颠覆边界
- 15. UIViewController的上边界改变
- 16. 边界上的分词
- 17. AdvancedDataGrid的边界在弹出消失
- 18. 消失的DIV或DIV边界
- 19. 如何避免身体标签产生的边界/边界?
- 20. 如何消除此循环矢量化上的数组边界检查?
- 21. iPhone删除消息,如界面
- 22. 如何使CSS边界,实际上是在非常边缘
- 23. 如何让Node.js上的MS Bot Framework等待用户的下一条消息?
- 24. 正确使用shared_ptr消除DLL边界上的重新分配
- 25. OpenCV如何平滑边界
- 26. 边界定位:如何?
- 27. 如何计算边界
- 28. 如何删除边界
- 29. 有界上下文找到边界?
- 30. 的Javascript:阅读node.js的HTTP消息