如此发送数据:
///////////-----------------------send------------------
char s_content[8192];
GetDlgItemText(IDC_SENDING_MSG,s_content,sizeof(s_content));
err=send(socket,s_content,sizeof(s_content),0);
if(err==SOCKET_ERROR)
{
status="send the message(s) error!";
UpdateData(0);
}
如此接收数据:
///////////-----------------------receive----------------
char rcv_content[8192];
if(recv(m_sock_accept,rcv_content,sizeof(rcv_content),0)!=SOCKET_ERROR)
{
SetDlgItemText(IDC_RECEIVED_MSG,rcv_content);
}两个控件都是EIDTbox,为何显示出来有时是下面那样的乱码,有时能正常显示?
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
///////////-----------------------send------------------
char s_content[8192];
GetDlgItemText(IDC_SENDING_MSG,s_content,sizeof(s_content));
err=send(socket,s_content,sizeof(s_content),0);
if(err==SOCKET_ERROR)
{
status="send the message(s) error!";
UpdateData(0);
}
如此接收数据:
///////////-----------------------receive----------------
char rcv_content[8192];
if(recv(m_sock_accept,rcv_content,sizeof(rcv_content),0)!=SOCKET_ERROR)
{
SetDlgItemText(IDC_RECEIVED_MSG,rcv_content);
}两个控件都是EIDTbox,为何显示出来有时是下面那样的乱码,有时能正常显示?
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
memset(rcv_content, 0, 8192);
haha 和上面的一样
{
rcv_content[len] = '\0';
SetDlgItemText(IDC_RECEIVED_MSG,rcv_content);
}
而且,TCP数据包长度在底层发送的时候默认都会被分成不大于1500字节的小包来发送.你的问题也许是出在这个上面,你可以修改一下代码.
发送部分:
int send_len = GetDlgItemText(IDC_SENDING_MSG,s_content,sizeof(s_content));
err=send(socket,s_content,send_len,0);
接收部分:
char rcv_content[8192];
memset( rcv_content, 0, sizeof( rcv_content ) );
对了,你这样的代码在学习的时候是可以的,但是在实际工作中还有很多其他问题需要考虑.
recv(m_sock_accept,rcv_content,sizeof(rcv_content)-1,0)