谈Socket传输结构体
来源:互联网 发布:mblock编程推箱子 编辑:程序博客网 时间:2024/05/30 20:06
网上有很多关于Socket结构体传输的文章。
正好前两天在纠结,于是翻开了几篇看。照着方法去做,结果发现不管用
可能是我太笨了吧。仔细研究发现又一次输给了细节。
由于在定义结构体时我们有两种定义方式
A:struct mystruct a
B:struct mystruct *b
这两种方式的定义在传输中代码是有细微差别的。我具体用我的一个例子说明吧。
#include<dirent.h> //库中定义的文件信息结构体struct dirent {ino_t d_ino; /* 索引号 */off_t d_off; /* 下一个偏移量 */unsigned short d_reclen; /* 本记录长度 */unsigned char d_type; /* 文件类型 */char d_name[256]; /* 文件名 */};
情况A分析:
struct dirent ptr;//定义结构体unsigned char dirbuf[sizeof(ptr)];//传输bufmemset(dirbuf, 0x00, sizeof(dirbuf));while((dirBytes = recv(sockfd, dirbuf, sizeof(dirbuf), 0)) != -1) {memcpy(&ptr, dirbuf, sizeof(ptr));//注意此处的代码细节 ptr.d_name[0];//用“.”方式访问结构体成员
情况B分析:
struct dirent *ptr;//定义结构体unsigned char buf[sizeof(*ptr)];//传输bufmemset(buf, 0x00, sizeof(buf));while((ptr = readdir(dir)) != NULL) {memcpy(buf, &(*ptr), sizeof(*ptr)); //注意此处代码细节 ptr->d_name[0];//用“->”方式访问结构体成员
- 谈Socket传输结构体
- C++ socket传输结构体
- Linux socket 传输和接受结构体
- 【转】socket不能直接传输结构体!
- socket传输结构体send()
- Socket传输结构体数据注意事项
- Linux C socket传输结构体
- c#中利用结构体进行socket传输数据
- Java 与 C socket通信传输结构体消息/Java解析C语言结构体
- scoket传输结构体
- C++中用Socket实现对结构体、长字符串和图片的传输
- windows和Linux之间socket传输结构体关于字节对齐产生的问题
- C++中用Socket实现对结构体、长字符串和图片的传输
- Socket 传输
- 通信结构体的传输
- socket的结构体
- socket地址结构体
- SOCKET 变长结构体
- Android开发——解决加载大图片时内存溢出的问题
- [ipad]没有做不到只有想不到,iPad的商用体验
- 建立rman恢复目录步骤
- CMA计量认证简介
- 两个博客的对比与分析(CSDN博客与博客园)
- 谈Socket传输结构体
- 关于CSDN, cnblog, iteye和51cto四个博客网站的比较与分析
- 如何定位资源消耗多的SQL
- 关于我自己在用mvn2时在src/main/resources添加了配置文件后eclipse没有自动在/src/main/webapp/WEB-INF/classes生成一样的文件问题记录
- 查看cpu信息的常用命令
- VC 中如何从字符串中分离文件名与路径(CString)
- sqlserver 存储过程备份
- 报错纠正
- firefox中点击新建标签页打开主页