一个socket通讯问题,多结构传输问题
我之前做socket客户端和服务端通信时两边是用的一个结构体,用struct A来表示吧,client端和server端互相发送数据时结构体是一样的,现在有个问题,server端能否在发送A的同时后面跟着B结构体的数据一起发过来呢,client端先收A再解析B结构体,这种思路该如何解决呢?
写段伪代码表达一下思路:
server端:
struct A
{
int a;
int b;
}pa;
struct B
{
char a[100];
char b[100];
}pb;
pa.a =1;
pa.b =2;
pb.a = "abc";
pb.b = "bcd";
发送时将四个值放在一个string中都发过去,在client端先用结构体A接收数据,然后再将结构体B解析出来,关键是后面怎么把结构体A和B解析出来啊,不知道我表达的意思清除了没有,求各位给个思路吧
[解决办法]
//recv buf...我认为通讯最好是基于‘协议’的,而不要基于数据结构,这样才能做到机器无关
A* pa = (A*)buf;
// use pa ...
B* pb = (B*)(buf+sizeof(A));
// use pb...