编写C程序的网络部分

时间:2012-05-31 14:54:32

标签: c networking tcp

我已经开始编写(在C中)一个依赖TCP的小型客户端/服务器应用程序。我缺乏网络编程经验。我很抱歉这篇文章的开放性。

我想知道如何最好地对消息进行编码和解码。我选择了以下方法:

客户端向服务器发送命令。每个命令都有一个分配给它的编号和一个结构。 struct存储命令的参数以及参数在内存中(以及在流中)的布局方式。当客户端想要发送命令时,它会使用数据填充相应的结构。为了使服务器能够识别该命令,客户端发送一个包含命令编号的字节。在命令编号字节之后,消息本身被馈送到流(其字段正确地转换为网络字节顺序)。

这种方法导致了工作代码,但它需要大量冗余(我发现自己一遍又一遍地编写switch语句)。有没有更好的办法?什么是标准程序?

1 个答案:

答案 0 :(得分:2)

Google的Protocol Buffers是序列化/反序列化数据的好方法。有C的实现。