小的打了个简单的网络聊天程序,客户端接收文本消息,服务器端发送文本消息。但是我的程序运行时,客户端过了一段时间后才能接收到一段乱码,请大虾看看。
  客户端的代码如下:
   
    void CClientDlg::OnBnClickedReceive()
{
// TODO: 在此添加控件通知处理程序代码
CString strAddr="210.43.111.1";
unsigned int nPort=5000;
//建立本地Socket
if(!ChatReceive.Create())
{
MessageBox("create failed","Receive",MB_ICONSTOP);
return;
}
else
{
//提出连接请求
ChatReceive.Connect(strAddr,nPort);
}
//接受字符缓冲区
char sReceive[1024];
//把字符数组转换成字符串
strAddr.Format(sReceive);
//接受数据
ChatReceive.Receive(sReceive,1024,0);
//设置编辑框的内容
m_strMessage=sReceive;
//更新显示数据
UpdateData(FALSE);
//关闭Socket
ChatReceive.Close();
}
服务器端:
void CServerDlg::OnBnClickedSend()
{

//发送的数据
CString strSendText;
//指定端口号
unsigned int nPort=5000;
//得到编辑框中得字符串,并存放于strSendText中
GetDlgItemText(IDC_EDIT,strSendText);
//建立Socket
if(!ChatSend.Create(nPort))
MessageBox("create failed");
else
{ //开始监听
ChatSend.Listen();
//接受请求,同时建立一个接受客户请求的Socket
ChatSend.Accept(server);
}
//发送数据
server.Send(strSendText,1000,0);
//关闭处理客户连接请求的Socket
server.Close();
//关闭监听Socket
ChatSend.Close();
}