| 发表于:2007-04-10 00:06:457楼 得分:10 |
一般的做法是定义一个包头,一个包体, 包头一般如下 struct head { int type;//包类型 比如1为注册。2为注销等等 自定义的 int bodylen;包体长度 下面可以自己根据需要扩充 .... }; 包体怎么定义都行了(不用的业务功能可以不同) 比如 struct body1 { int test; char buffer[100]; }; struct body2 { char buffer2[200]; long test; }; 发送的时候可以先发包头再发包体 head head1; head1.type = 1; head1.bodylen =sizeof(body1); send(socket,&head1, sizeof(head)); body1 body1; memset(&body1,0,sizeof(body1)); body1.test =100; strcpy(body1.buffer, 'dfsdfsd ',7); send(socket,&body1, sizeof(body1)); 接受的时候要先收包头然后根据包头里面的长度字段来决定要接受多长的包体 | | |
|