我已经开始(用 C 语言)编写一个依赖 TCP 的小型客户端/服务器应用程序。我缺乏网络编程的经验。对于这篇文章的开放式性质,我深表歉意。
我想知道如何最好地编码和解码消息。我选择了以下方法:
客户端向服务器发送命令。每个命令都有一个分配给它的编号和一个结构。该结构存储命令的参数以及参数在内存中(以及流中)的布局方式。当客户端想要发送命令时,它会用数据填充相应的结构。为了让服务器识别该命令,客户端发送一个包含命令号的字节。在命令编号字节之后,消息本身被馈送到流(其字段正确转换为网络字节顺序)。
这种方法产生了有效的代码,但它带来了很多冗余(我发现自己一遍又一遍地编写 switch 语句)。有没有更好的办法?标准程序是什么?
最佳答案
Google 的 Protocol Buffers是序列化/反序列化数据的好方法。有 C 的实现。
关于c - 编写C程序的网络部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836033/