udp一对一通信,困扰了许久,希望大神可以给我指点下,谢谢

梦魇成佛 2017-12-13 06:25:35
问题:我想建立基于UDP一对一的通信,但是为什么接收不到数据?
WSADATA wsaData;
int err = WSAStartup(MAKEWORD(2,2),&wsaData);
if(0 != err)
{
AfxMessageBox(_T("初始化Socket失败"));
return FALSE;
}
if(2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
{
WSACleanup();
AfxMessageBox(_T("Socket版本错误"));
return FALSE;
}
if ((m_sockClient = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
{
AfxMessageBox("ERROR: Create Client Socket Error!");
return FALSE;
}

m_serverAddr.sin_family = AF_INET;
m_serverAddr.sin_port = htons(m_nServerPortNo);
m_serverAddr.sin_addr.s_addr = inet_addr(m_addrServer);
size = sizeof(m_serverAddr);
CString strIp;
strIp.Format("%s,%d",m_addrServer,m_nServerPortNo);
AfxMessageBox(strIp);
struct sockaddr_in m_ClientAddr;
m_ClientAddr.sin_family = AF_INET;
m_ClientAddr.sin_port = htons(50004);
m_ClientAddr.sin_addr.s_addr = inet_addr("192.168.5.1");
if ((bind(m_sockClient,(LPSOCKADDR)&m_ClientAddr, sizeof(m_ClientAddr)))==SOCKET_ERROR)
{
AfxMessageBox("ERROR: Bind Socket Error!");
exit(-1);
}


sendto(m_sockClient,strSend,strlen(strSend),0,(struct sockaddr*)&m_serverAddr,size);
lenth = recvfrom(m_sockClient, gcInBuffer, 256, 0, (struct sockaddr *)&m_serverAddr,&size) );
...全文
409 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-12-22
  • 打赏
  • 举报
回复
学会使用抓包软件wireshark
走好每一步 2017-12-22
  • 打赏
  • 举报
回复
直接买本孙鑫的MFC书籍,看网络编程那章
Qlaiaqu 2017-12-22
  • 打赏
  • 举报
回复
用sokit做客户端,自己单步调试服务器,如果服务器没反应,调查建立服务器监听的代码是否有问题
zq775214 2017-12-21
  • 打赏
  • 举报
回复
你把你得端口号改一下 改成12345 试试
啊哈moment 2017-12-21
  • 打赏
  • 举报
回复
建议你使用网络调试助手, 打开UDP端口 去监听你自己发的消息 而且最好是本机 即保证你的网络是通的 发送后对sendto函数的返回值进行判断 查看是否发送成功等

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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