我的问题是如何正确处理使用tcp连接接收的数据。事实上,通过建立一个tcp连接,创建了一个Stream.Suppose我想发送一条有开头和结尾的消息。由于数据在流中流动而没有指定任何边界,我如何识别消息的开头和结尾。我想在我的信息的开头和结尾加上一些特殊的字符,以便识别它们,但我想知道这是否是一种正确的方法。因此,我的问题是如何正确建立tcp连接消息的边界? (我将Node.js用于客户端,java用于服务器端)
提前谢谢
答案 0 :(得分:0)
普通的TCP连接需要某种协议来定义数据格式,以便接收端知道如何解释发送的内容。例如,http是一个这样的协议,webSocket是另一个。有数千种现有协议。我建议你找一个与你想要做的事情相匹配的人,而不是建立你自己的。
不同的协议使用不同的方案来定义数据格式,从而使用不同的方式来描绘数据。例如,在http中,它使用\n
来描述标题,然后在每一行上使用xxxx: yyyy
,然后使用空行来描述标题的结尾。
其他协议使用二进制格式来定义具有消息类型,消息长度和消息有效负载的消息包。
实际上有数百种不同的方法。由于那里有很多预先构建的选择,人们通常可以找到一个相当匹配的现有协议,并为每一端使用预构建的服务器和客户端,而不是编写自己的协议生成和解析代码。