0

我正在实现一种客户端服务器机制,其中从客户端收集一些数据并将其发送到侦听客户端调用的服务器。我正在使用 tcp 套接字执行此操作,数据如下所示:

Files:20;Users:100;Availability:0.65 

这是否符合通过 tcp 套接字发送数据的标准?这些是聚合数据,我将每 5 秒发送一次。我该如何改进它?

4

2 回答 2

1

不,它看起来不对。无论您是否意识到,您已经做出了一些可能会在以后影响您的决定,例如保留 ':' 和 ';',实际上是 '\n',因此除非您提供,否则它们不会出现在数据中逃生机制:你考虑过吗?

有很多现有的协议可以复制或者只是重复使用。

于 2013-06-25T20:57:04.550 回答
1

没有通过 TCP 套接字发送数据的标准,至少不是从用户空间发送数据。您唯一需要注意的是 TCP 是基于流的,因此您无法保证会遵守消息边界。例如,一次 recv() 调用可能导致应用程序接收到多个数据包。

为了改进您的数据格式,您可以删除描述。如果您知道每条消息都将包含相同的“字段”并且顺序相同,那么它们可能是多余的。

于 2013-06-25T20:23:10.673 回答