网络聊天室(11)
发布时间:2021-06-06
发布时间:2021-06-06
这是一个利用Visual C++ 6.0和MFC相结合做成的简单的网络聊天室系统。
图3.3 连接错误提示
图3.4 端口或IP错误提示
第四,创建套接字clconect,设置成功创建后相关控件为只读(避免误操作),代码:clconect.setp(this);
CWnd *cw=GetDlgItem(IDC_EDIT1); cw->EnableWindow(false); cw=GetDlgItem(IDC_EDIT2); 第五,设置建立连接后相应提示。
(5)然后就是对话框中的发送(回车)按钮的函数,功能实现代码如下: void CTcpclientDlg::Onsend() { }
定义字符串str用于保存输入的消息,调整格式后使用CSocket的操作函数send将消息发送到服务器。
(6)要显示客户端接收到来自服务器其他用户的信息,功能实现代码如下:
CString str;
GetDlgItemText(IDC_EDIT4,str); str=clientname+":"+str; int len=str.GetLength();
if(clconect.Send(str,len)>1)SetDlgItemText(IDC_EDIT4,"");
这是一个利用Visual C++ 6.0和MFC相结合做成的简单的网络聊天室系统。
void CTcpclientDlg::onrev() { }
代码分析:
①创建字符串str、str1,字符数组ss。
②接受来自服务器套接字的信息数据保存到ss中,调整格式后将其打印到消息区。 (7)当服务器断开连接时,就会弹出此消息框,如下图3.5所示:
CString str,str1; char ss[256];
for(int j=0;j<256;j++) ss[j]='\0'; clconect.Receive(ss,256); if(ss!="")
str.Format("%s",ss);
GetDlgItemText(IDC_EDIT3,str1); str=str1+"\r\n"+str;
SetDlgItemText(IDC_EDIT3,str);
CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT3));
ce->LineScroll(ce->GetLineCount()-1);;
图3.5 失去连接提示
在CTcpclientDlg类中添加消息函数oncl(),调用MessageBox函数,输出出错提示信息“失去连接或者找不到服务器”,这时函数执行用户的命令,因为无任何参数,所以函数返回参数值为NULL,然后关闭此对话框。
当失去与服务器的连接后,重新将连接服务器设置编辑框启用等待下次连接。 (8)在退出程序时的提示,如下图3.6所示:
下一篇:小学五年级数学第一单元测试卷