我有一个节点 TCP 服务器正在工作并等待数据以及我拥有的每个套接字
socket.on("data", function () {
});
现在,据我了解,只要收到任何数据,就会调用它。这意味着如果我发送一个大字符串,它将被分割成多个数据包,每个数据包将分别调用事件。因此,我可以连接数据,直到调用“结束”事件。根据节点文档,这发生在发送 FIN 数据包时。
我不得不承认我对网络了解不多,但是这个 FIN 数据包,我必须在从我的 C# 应用程序发送数据时手动发送它还是这个代码
var stream = client.GetStream();
using (var writer = new StreamWriter(stream)) writer.Write(request);
当它设法发送整个请求字符串时自动发送它?其次,它是如何从另一端工作的?如何从 Node 向我的 C# 客户端发送“批次”数据,以便它知道整个“批次”应该被视为一件事,尽管它位于多个数据包中?
此外,即使在 .NET 中也有相当于“结束”的东西吗?目前,我一直在阻塞,直到流的 DataAvailable 为真,但这会在第一个数据包上触发,对吧?它不会等待整个事情。
如果有人能为我阐明这一点,我将不胜感激。