VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 687|回复: 6

[求助] socket 中的 send 函数 怎么发送struct类型的数据、并到远程怎么对数据结构解析

[复制链接]
12_avatar_middle
在线会员 发表于 2016-3-23 11:31:12 | 显示全部楼层 |阅读模式
3驿站币
socket  中的 send 函数 怎么发送struct类型的数据、并到远程怎么对数据结构解析

struct FileInfo
{
        CString m_FileName; //文件的名字
        //UINT m_FileLenth;  
        ULONGLONG m_FileSize;  // 文件的大小
        unsigned int SendNum;
};

最佳答案

查看完整内容

send 函数发送的数据要求内存是连续的,你提供给他发送的内存的首地址即可,你当前的整个结构体内部有个CString的成员,所以导致内存不连续了,结构体定义得改下: struct FileInfo { TCHAR m_FileName[256]; //文件的名字 //UINT m_FileLenth; ULONGLONG m_FileSize; // 文件的大小 unsigned int SendNum; }; 之后就可以发送该结构体对象了,举个例子: FileInfo mFileInfo; //给 ...




上一篇:ADO不能在win2003系统上打开?
下一篇:VC使用CHttpFile类获取POST返回数据问题
51_avatar_middle
online_admins 发表于 2016-3-23 11:31:13 | 显示全部楼层
send 函数发送的数据要求内存是连续的,你提供给他发送的内存的首地址即可,你当前的整个结构体内部有个CString的成员,所以导致内存不连续了,结构体定义得改下:
struct FileInfo
{
        TCHAR m_FileName[256]; //文件的名字
        //UINT m_FileLenth;  
        ULONGLONG m_FileSize;  // 文件的大小
        unsigned int SendNum;
};

之后就可以发送该结构体对象了,举个例子:
FileInfo mFileInfo;
//给mFileInfo的各个成员字段赋值
send(sock, &mFileInfo, sizeof(FileInfo), 0);
12_avatar_middle
ico_lz  楼主| 发表于 2016-3-23 13:04:45 | 显示全部楼层
Syc 发表于 2016-3-23 12:00
send 函数发送的数据要求内存是连续的,你提供给他发送的内存的首地址即可,你当前的整个结构体内部有个CSt ...

谢谢  Syc 大哥
12_avatar_middle
ico_lz  楼主| 发表于 2016-3-23 13:53:11 | 显示全部楼层
再问一下  怎么在远端解析 这个数据结构 还是定义一样的结构体、 赋值就可以啦吗?   谢谢。。
12_avatar_middle
ico_lz  楼主| 发表于 2016-3-23 13:53:41 | 显示全部楼层
Syc 发表于 2016-3-23 11:31
send 函数发送的数据要求内存是连续的,你提供给他发送的内存的首地址即可,你当前的整个结构体内部有个CSt ...


再问一下  怎么在远端解析 这个数据结构 还是定义一样的结构体、 赋值就可以啦吗?   谢谢。
51_avatar_middle
online_admins 发表于 2016-3-23 13:59:00 | 显示全部楼层
liuzhezhe 发表于 2016-3-23 13:53
再问一下  怎么在远端解析 这个数据结构 还是定义一样的结构体、 赋值就可以啦吗?   谢谢。

没错!
FileInfo mFileInfo;
recv(sock, &mFileInfo, sizeof(FileInfo), 0);
06_avatar_middle
在线会员 发表于 2016-3-24 14:31:06 | 显示全部楼层
学习一下啦
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-21 16:43

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表