我通過sendto發(fā)送的數(shù)據(jù)recvfrom接收 可是在接收數(shù)據(jù)是發(fā)現(xiàn)數(shù)據(jù)莫名的少幾個字符我第一次發(fā)送:123456 實際收到的為 1234我第二次發(fā)送:abcdefg 時間收到的為 abcd我第三次發(fā)送:5 實際收到的為 5bcd以下是我的代碼接收數(shù)據(jù)代碼
SOCKADDR_IN addrRecv;//獲取發(fā)送端的地址信息
char resultStr[100];//接收發(fā)送消息
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);
}
發(fā)送數(shù)據(jù)的代碼
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 回答
- 0 關注
- 949 瀏覽
添加回答
舉報
0/150
提交
取消