UDP 发送 请高手指教

liuliguo940 2003-10-16 10:33:30
我定义了两个结构
struct Head_Info
{
int nAccounts; //好友的id
CHAR szNick[16]; //好友的昵称
CHAR szWorkUnit[32]; //好友的工作单位

Head_Info()
{
memset(&nAccounts,0,sizeof(int));
memset(&szNick,'\0',sizeof(szNick)/sizeof(char));
memset(&szWorkUnit,'\0',sizeof(szWorkUnit)/sizeof(char));
}
};
struct Head_Msg
{
int nId;
int nOrderId;
int nSum;
Head_Info *pHeadInfo;
Head_Msg()
{
memset(&nId,0,sizeof(int));
memset(&nOrderId,0,sizeof(int));
memset(&nSum,0,sizeof(int));
}
};

以UDP的方式进行通讯
以结构Head_Msg发送数据
代码如下
Head_Msg HeadMsg;
memset(&HeadMsg,0,sizeof(HeadMsg));

HeadMsg.nId = 1;
HeadMsg.nOrderId = rand();
HeadMsg.nSum = 2;


Head_Info *pHeadInfo = new Head_Info[HeadMsg.nSum];


pHeadInfo[0].nAccounts =1234;
strcpy(pHeadInfo[0].szNick,"liuliguo");
strcpy(pHeadInfo[0].szWorkUnit,"liu");

pHeadInfo[1].nAccounts =4321;
strcpy(pHeadInfo[1].szNick,"xiaoguo");
strcpy(pHeadInfo[1].szWorkUnit,"xiao");

HeadMsg.pHeadInfo = new Head_Info[HeadMsg.nSum];
HeadMsg.pHeadInfo = pHeadInfo;


int n = sendto(udpsock, (char*)&HeadMsg, sizeof(HeadMsg), 0, (sockaddr *)&dest, sizeof(sockaddr_in));

但发送时,只发送了Head_Msg结构数据,Head_Info结构中的数据没有发送出去
如何处理?请高手指教

...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ProgrameMan 2003-10-21
  • 打赏
  • 举报
回复
to w_flyer(小飞侠) 你试试看 能不能发出去

char m[4096] = {0};
char *p = m;
memcpy(m,(char *)&pack,sizeof(pack));
p+=sizeof(RECV_TREAT_VERSION);
memcpy(p,o,sizeof(VERSION));
p+=sizeof(VERSION);
memcpy(p,l,sizeof(VERSION));

int n = sendto(udpsock, m, sizeof(pack) + sizeof(VERSION) *2 , 0, (sockaddr *)&dest, sizeof(sockaddr_in));
ZengYongChun 2003-10-16
  • 打赏
  • 举报
回复
你的struct要
#pragma pack(push, 1)
struct Frame
{
....
};
#pragma pack(pop)
ProgrameMan 2003-10-16
  • 打赏
  • 举报
回复
改正
int n = sendto(udpsock, (char*)&HeadMsg, sizeof(HeadMsg) + sizeof(Head_Info) *2, 0, (sockaddr *)&dest, sizeof(sockaddr_in));
w_flyer 2003-10-16
  • 打赏
  • 举报
回复
ProgrameMan 我想知道你的方法真的能发出Head_Info的数据!!
w_flyer 2003-10-16
  • 打赏
  • 举报
回复
大哥你发出去的是Head_Info*得指针地址而不是数据!!

18,356

社区成员

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

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