我正在为一个没有操作系统的嵌入式系统(Zybo)实现一个TCP客户端,我在LwIP中完全是新手。在谷歌搜索了一段时间之后,我发现很少有关于如何使用它的示例。
我想知道是否有任何方法通过它发送C结构,以及是否有可用的样例。服务器是在Linux下在另一个Zybo板上实现的,它处理许多结构来控制状态机,所以它是非常关键的。
提前谢谢。
发布于 2016-05-31 15:06:44
LwIP有一个TCP栈实现,所以它能够(几乎?)常规TCP堆栈所能做的一切。
当然,它允许您通过套接字发送任意数据。无论是标准堆栈,还是LwIP都没有对序列化的任何特定支持(您可能需要什么)。
您将需要定义一个协议来将您的结构序列化为字符数组,发送这个数组,在另一边接收它,然后反序列化它。一种对结构进行锯齿化的方法是所谓的实体序列化--只需发送结构的原始内存足迹并在另一边接收它。这是非常简单,非常快,但非常不可靠的方法--如果相同结构的内存布局在发送方和接收方之间有所不同怎么办?随着程序的发展,也很难向结构中添加新的字段(最终必须添加它们),而且几乎不可能删除一个字段。
更好的方法是真正理解各种序列化方法,以及最适合您的图一。
发布于 2016-06-03 09:52:19
通过使用memcpy函数解决了这个问题,类似于这样:
typedef struct{
int ID;
char name [100];
int order;
}MESSAGE;
MESSAGE msg;
char b [sizeof(MESSAGE)];
memcpy(b, &msg, sizeof(MESSAGE));这样做之后,它只是通过套接字发送字节数组。不管怎样,谢谢你的帮助。
https://stackoverflow.com/questions/37549186
复制相似问题