Socket通信发送和解析出现错误
客户端发送关键代码:
struct Protocal_1 protocal_1;
Word type=163;
int send_length=sizeof(type)+4+sizeof(protocal_1);//=4026
char *pcreate=(char *)malloc(send_length);
memset((char *)pcreate,0,send_length);
memcpy((char *)pcreate,(Word *)&type,sizeof(type));//前两个字节放type=163
memcpy((char *)(pcreate+sizeof(type)),(char *)&send_length,sizeof(send_length));//中间四个字节放发送长度4026
memcpy((char *)(pcreate+sizeof(type)+sizeof(send_length)),(char *)&protocal_1);//后面放结构体
Sendbuf(pcreate,4026);//省写,发送
服务端解析: Word type;
int s_length=4026;
char *buff=(char *)malloc(s_length);
memset(buff,0,s_length);
ReceiveBuf(buff,s_length);//接收
memcpy((char *)&type,buff,sizeof(type));
ShowMessage(type);
free(buff);
错误,为什么服务端输出的type值是65072
希望高手能指出错误,并给出不足,立马会结贴,谢谢了!
struct Protocal_1 protocal_1;
Word type=163;
int send_length=sizeof(type)+4+sizeof(protocal_1);//=4026
char *pcreate=(char *)malloc(send_length);
memset((char *)pcreate,0,send_length);
memcpy((char *)pcreate,(Word *)&type,sizeof(type));//前两个字节放type=163
memcpy((char *)(pcreate+sizeof(type)),(char *)&send_length,sizeof(send_length));//中间四个字节放发送长度4026
memcpy((char *)(pcreate+sizeof(type)+sizeof(send_length)),(char *)&protocal_1);//后面放结构体
Sendbuf(pcreate,4026);//省写,发送
服务端解析: Word type;
int s_length=4026;
char *buff=(char *)malloc(s_length);
memset(buff,0,s_length);
ReceiveBuf(buff,s_length);//接收
memcpy((char *)&type,buff,sizeof(type));
ShowMessage(type);
free(buff);
错误,为什么服务端输出的type值是65072
希望高手能指出错误,并给出不足,立马会结贴,谢谢了!
...全文
相关推荐
C# 安达泰门禁 socket发送
通过阅读和分析代码,可以更深入地理解如何在C#中实现与安达泰门禁系统的socket通信。对于初学者,这是一个很好的学习案例,可以了解到实际项目中如何处理网络通信和协议解析的问题。
Socket通讯使用的坑-消息合并发送
最近在做双焊接机的协同工作通讯时,发现不同方法发送的数据被Socket合并成一条消息发送出去了,这样在收时会报错了。两个方法发送的JSON数据内容是不一样的,由于两个发送时间的刚好是同一时间点触发,现像就是在客户端发现收到的数据是两个JSON对象的字符。这样在将字符串转成对像时就会报错了。
android 简明Socket通信实例
错误处理和资源关闭**在Socket通信中,务必处理可能出现的异常,并确保在操作完成后关闭Socket和相关的输入/输出流,以释放系统资源。
C# 使用Socket发送和接收TCP数据
为了确保良好的网络通信,开发者还需要关注一些最佳实践,如错误处理、异步操作以避免阻塞、适当的资源管理(如关闭不再使用的Socket),以及使用适当的协议格式化和解析发送的数据。
C#的Socket实现UDP协议通信
这对于构建分布式通信仿真系统或其他需要高速、低延迟数据传输的应用具有重要意义。在实际开发中,还需要考虑错误处理、多线程或异步操作,以及更复杂的数据包格式化和解析等问题。


网络及通讯开发
