如何构造具有给定消息规范的请求消息,然后发送到服务器思想 c 套接字?二进制协议用于客户端和服务器通信。以下方法是否正确?
给定消息规范:
字段格式长度值 ------------ ------ ------ -------- 请求 ID Uint16 2 20 requestNum Uint16 2 100 requestTitle String 10 数据串
/****************** 方法一 ****************/ typedef 无符号短 uint16; 类型定义结构{ uint16 请求 ID [2]; uint16 requestNum [2]; 无符号字符请求标题[10]; }requestMsg; … 请求消息 rqMsg; memcpy(rqMsg.requesID, "\x0\x14", 2); //20 memcpy(rqMsg.requesNum, "\x0\x64", 2); //100 memcpy(rqMsg.requesTitle, "title01", 10); … 发送(sockfd, &rqMsg, sizeof(rqMsg), 0); /******************方法2 ****************/ 无符号字符 rqMsg[14]; memset(rqMsg, 0, 14); memcpy(rqMsg, "\x0\x14", 2); memcpy(rqMsg+2, "\x0\x64", 2); memcpy(rqMsg+4, "title01", 10); … 发送(袜子,&rqMsg,sizeof(rqMsg),0);