我已经开始编写(在C中)一个依赖TCP的小型客户端/服务器应用程序。我缺乏网络编程经验。我很抱歉这篇文章的开放性。
我想知道如何最好地对消息进行编码和解码。我选择了以下方法:
客户端向服务器发送命令。每个命令都有一个分配给它的编号和一个结构。 struct存储命令的参数以及参数在内存中(以及在流中)的布局方式。当客户端想要发送命令时,它会使用数据填充相应的结构。为了使服务器能够识别该命令,客户端发送一个包含命令编号的字节。在命令编号字节之后,消息本身被馈送到流(其字段正确地转换为网络字节顺序)。
这种方法导致了工作代码,但它需要大量冗余(我发现自己一遍又一遍地编写switch语句)。有没有更好的办法?什么是标准程序?