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