我正在尝试利用 Node.js 中的 TCP 套接字与 Lua 程序进行通信。我试图解决两个问题。首先是缓冲。
缓冲区据我了解,当从套接字向您的代码提供数据时,它将是迄今为止接收到的任何数据(流而不是数据包)。因此,当您读取接收到的数据时,它可能与发送的数据不同。
即收到的数据{学校:[“长
vs数据发送{学校:[{“Longwood”,“Hillbrow”}]}
解决此问题的方法是将您的数据放入“缓冲区”中,并通过您用来显示该信息结尾的任何方法将其拆分。通常看起来是新行。
我的问题在这里:
- 您最终能否在缓冲区中获得更多 2 个或更多完整的数据部分,您将如何处理?循环?
- 离开套接字的数据似乎也存在同样的问题。然而,我注意到在其他代码示例中,人们在写入套接字之前使用 Node.js缓冲区。为什么这不用于传入数据?
- 如果写入的数据多于无法处理的数据,Node 是否会为您处理这个问题,或者您是否需要想出一个方法。
最后我似乎误解了数据方面。发送和接收的所有数据是否都需要转换为二进制并返回?我希望只来回发送 JSON 数据。我想这就是我的困惑。例如:
var myQuestion = "Is this acceptable and will I encounter any issues?
socket.write(myQuestion);
非常感谢您的宝贵时间。