现有如下问题:
在C语言里面定义了一个结构,例如:
typedef
{
int msgType;
char msgBody[100];
}msg
这个消息通过C语言的发送,在Java端接收,如何正确获取msgType和msgBody的内容呢?
如果通过C语言发送纯char的内容,那么java端接收正常!对于这种带数据结构的,不知道如何处理了,请各位帮忙解决,谢谢!
当成两个部分接收,先收他一个4字节的数字,再收100个字节的char。当然bitness/endian稍微注意下。
复杂结构还要注意alignment哦。
如果C的部分也归你控制,那最好把协议定得详细周全些,通用性强些,多些说明信息,不要用直接发送结构这种。
复杂的参考SOAP/ICE/JSON之类,简洁的也可以参考Google Protocol Buffers这种。