数据包里的字符串

gxx2019 2009-09-08 01:57:11
typedef struct hdr_pack_msg
{
char type;
CString filePath;
DWORD dwIP;
bool isWorking;
bool hasDown;
bool exit;
}HDR_PACK_MSG;
为什么我发送这个自定义的包,每次收到的filePath都为空,而其他的变量值是正确的呢。
就算我在发送方把filePath写死,也收不到这个值。
如 HDR_PACK_MSG hdr;
hdr.type = W;
hdr.dwIP = inet_addr(m_grid.GetItemText(i, 1));
hdr.filePath = "H:\Adobe CS4....";
hdr.isWorking = TRUE;
hdr.hasDown = FALSE;
hdr.exit = FALSE;
//将命令包发送给客户端
int err = send(sClient, (char*)&hdr, HDRLEN, 0);
接收端:
HDR_PACK_MSG hdr;
int nerrCode;
nerrCode = recv(sClient, (char*)&hdr, HDRLEN, 0);
除了filePath 为空,其他变量都正确。HDRLEN是包的大小
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pister 2009-09-08
  • 打赏
  • 举报
回复
你发的只是一个地址,你要发字符串的内容,7楼的方法可以做个参考,但是最好先可以发个整数作为字符串的长度,然后接通过这个整数的值作为长度来接受
我辣椒哥 2009-09-08
  • 打赏
  • 举报
回复
char filePath [20];
strcpy(hdr.filePath ,"szAddAmigo");
bdzwj 2009-09-08
  • 打赏
  • 举报
回复
CString 内部数据是指向一个C类型字符串的,你在用(char*)强制转换后发送的时候应该只是发送了一个执向本地的指针而已,并没有发送实际的数据。
我辣椒哥 2009-09-08
  • 打赏
  • 举报
回复
filePath 应该用数组 把数据STRCPY到数组
bdzwj 2009-09-08
  • 打赏
  • 举报
回复
不用CString 用CHAR []数组替代
这不是鸭头 2009-09-08
  • 打赏
  • 举报
回复
请检查是否发送出去
gxx2019 2009-09-08
  • 打赏
  • 举报
回复
我随便写一个字符串,接收端都收不到。跟\何\\没有关系
我辣椒哥 2009-09-08
  • 打赏
  • 举报
回复
hdr.filePath = "H:\\Adobe CS4....";
这样试试

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧