一个简单的Socket问题?

pcwl 2002-12-15 11:45:52
#define HEAD 4
typedef struct _packet
{
char szlen[HEAD];
char* buf;
}packet;
1.客户发packet结构的信息过来。假如:
packet pack;
pack.szlen="10";
buf[10]="client msg";
pack.buf=buf;
2.服务器接收:
 (1)第一次收的没错:
  char buf[4];
  rc=recv(m_currAcceptSock,buf,HEAD,0);
  this->m_msgInfo[index].ulRecvLen=atol(buf);//ulRecvLen=10;
(2)但再收一次接着的信息怎么变成了乱码,而且收不到全部的信息
  rc=recv(m_currAcceptSock,
 (char*)m_msgInfo[index].msgBuf
 (int)m_msgInfo[index].ulRecvLen,0);//msgBuf里是乱码
...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
anglely168 2002-12-16
  • 打赏
  • 举报
回复
接受后要对rc判断一下
wenrich 2002-12-16
  • 打赏
  • 举报
回复
试试:
m_msgInfo[index].msgBuf[m_msgInfo[index].ulRecvLen] = '\0';
2934046 2002-12-16
  • 打赏
  • 举报
回复
rc表示收到的长度,-1为没有收到东东,故为乱码
bb123456789 2002-12-16
  • 打赏
  • 举报
回复
你看一下第一次接收到的字节数rc和你发出的是否一致?
sjzxyg 2002-12-16
  • 打赏
  • 举报
回复
char* buf ,这个指针传过去有什么意义呢
netcoder 2002-12-16
  • 打赏
  • 举报
回复
this->m_msgInfo[index].ulRecvLen=atol(buf);//ulRecvLen=10;
ulRecvLen怎么等于10呢?
buf[10]="client msg"呀

18,357

社区成员

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

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