为了账号安全,请及时绑定邮箱和手机立即绑定

c++ UDP通信数据不正确!!!!求解

c++ UDP通信数据不正确!!!!求解

哈士奇WWW 2018-12-06 23:46:05
我通过sendto发送的数据recvfrom接收 可是在接收数据是发现数据莫名的少几个字符我第一次发送:123456 实际收到的为 1234我第二次发送:abcdefg 时间收到的为 abcd我第三次发送:5 实际收到的为 5bcd以下是我的代码接收数据代码 SOCKADDR_IN addrRecv;//获取发送端的地址信息 char resultStr[100];//接收发送消息 memset(resultStr, 0, strlen(resultStr)); char tempStr[200]; memset(tempStr, 0, strlen(tempStr)); int len = sizeof(SOCKADDR); int rfrom; while (true) { rfrom = recvfrom(m_sock, resultStr, sizeof(resultStr), 0, (SOCKADDR*)&addrRecv, &len); if (SOCKET_ERROR == rfrom) { break; } //sprintf(tempStr, "%s to: \r\n %s", inet_ntoa(addrRecv.sin_addr), resultStr); ::PostMessage(hwnd, WM_RECVDATA, 0, (LPARAM)resultStr); } 发送数据的代码 DWORD s_ip; ((CIPAddressCtrl*)GetDlgItem(IDC_IP_TEXT))->GetAddress(s_ip); fflush(stdout); SOCKADDR_IN addrTo; addrTo.sin_family = AF_INET; addrTo.sin_port = htons(19019); addrTo.sin_addr.S_un.S_addr = htonl(s_ip); CString sendStr; GetDlgItemText(IDC_EDIT_SENDTEXT, sendStr); sendto(m_Sock, (LPSTR)(LPCTSTR)sendStr, sendStr.GetLength()+1, 0, (SOCKADDR*)&addrTo, sizeof(SOCKADDR));  各位大侠我是新手 请各位指教一下!!
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

不正确啊,不正确,怎么办?

查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 926 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信