【发布时间】:2011-09-20 04:32:46
【问题描述】:
我正在编写一个客户端服务器应用程序。在这种情况下,我必须将大小为 1024 字节的数据包从客户端传输到服务器。如果数据包大小更大,则必须将其分成两个数据包。服务器必须了解接收到的数据包是新数据包还是旧数据包的延续。然后它应该包含协议的版本号。该协议可以被多个应用程序使用,因此数据包还应包含应用程序标识符以确定哪个应用程序。数据包还应包含 crc 信息以检查数据包中的错误。任何人都可以建议我设计上述协议以在客户端和服务器之间进行通信。 任何人都可以向我推荐一些教程,这些教程将解释如何从客户端加密和发送数据,然后在服务器中接收和解码。
【问题讨论】:
-
这是作业吗?您可以使用已经实现(且制作精良)的协议,因为您不会重新发明轮子。
-
你是从头开始构建这个作为一个练习/课堂项目吗?如果没有,那么您应该使用现成的协议,例如 TCP/IP。
-
客户端有大量消息要发送到服务器。一条消息可以大于 1024 字节,这将在服务器上接收。因此,如果客户端 m/c 速度很快,前一条消息的大小大于 1024 字节,则下一条消息将与前一条消息混合。所以我所做的是在每条消息之后我给客户端一个延迟,以便服务器有时间接收当前消息的所有字节。这不是正确的方法,所以我想设计一些标准的方法来做到这一点。我想要一个基于帧的协议,其中每个帧的长度小于等于 1024。