- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于TCP的聊天程序设计与开发精要
《基于TCP的聊天程序设计与开发》
实验指导
实验目的
通过设计网络协议及应用程序来加深理解网络各层的功能和机理,特别是对网络层、运输层、应用层的理解。
独立编写基于TCP的网络应用程序,独立上机调试程序,掌握基于TCP的网络应用基本技术。
培养独立思考问题、分析问题的能力和规范化工程设计的能力。综合运用所学的知识去解决实践中的应用问题,掌握实验技能。为以后的毕业设计与实际工作打下基础。
实验方式与基本要求
独立编写程序,独立上机调试程序,独立撰写实验报告
实验基本步骤
本试验采取分组进行协议设计,然后各自进行独立的完整的程序设计(包括概要设计与代码设计),然后互相通信。(如果设计正确,这组程序的任何一个都应与其它程序是互通的)。
步骤1: 程序总体结构:C/S结构。C与S分开。
步骤2:服务器S程序基本构成
S主进程初始化;例如
void CServerSocket::Start()
{
this-Create(1169); //创建端口进程
this-Listen();
}
主进程进入监听;例如
Listen();//开始监听
重载虚函数OnAccept,响应客户请求
void CServerSocket::OnAccept(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
SOCKADDR SockAddr;
int i=0;
while(iSLAVEMAX){
if(slave[i]==NULL){
slave[i] = new CServerSlaveSocket(dlg,this,i);//创建子进程
this-Accept(*slave[i],SockAddr);//接受客户连接请求
dlg-SetForegroundWindow();
CString idstr;
idstr.Format(%d,i+1);//加上客户端编号
slave[i]-Send(连接成功啦^-^,13);//发送连接成功消息给客户
CString c_IP;
UINT c_Port;
slave[i]-GetPeerName(c_IP,c_Port);//获取客户端IP和端口
CString strPort;
strPort.Format( %d,c_Port);
char hostStr[50];//添加客户信息
strcpy(hostStr,客户+idstr+[+c_IP+:+strPort+]);
dlg-m_hostList.AddString(hostStr);//客户上线
break;
}
i++;
}
if(i==SLAVEMAX){
dlg-m_hostList.AddString(已超过最大连接数T_T);
}
CSocket::OnAccept(nErrorCode);
}
释放一个连接
void CServerSocket::DeleteSlaveSocket(int id)
{
delete slave[id];//////////////////////关闭子进程
slave[id] = NULL;
}
从进程重载虚函数OnReceive,处理接收到的数据;例如
void CServerSlaveSocket::OnReceive(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
char rbuf[256];
int n;
n = this-Receive(rbuf,256);//////////////////接受消息
rbuf[n] = \0;
this-GetPeerName(c_IP,c_Port);/////////获取对方IP,端口
char buf[512]={0};
strcpy(buf,客户+uid+: );/////////////////////显示客户号
CTime tt; //////加上发送时间
strcat(buf,tt.GetCurrentTime().Format(%H:%M:%S).GetBuffer(8));
strcat(buf, \r\n);
dlg-m_show += buf;//////////////////
strcpy(buf, );
strcat(buf,rbuf);
strcat(buf,\r\n);////////////////////////显示收到的信息
dlg-m_show += buf;//////////////////
dlg-UpdateData(false);
dlg-m
您可能关注的文档
最近下载
- 线性代数的几何意义_任广千,谢聪,胡翠芳编著.pdf
- 《给水排水管道工程施工及验收规定》GB50268-2023.pdf
- 《文言文虚词》复习教案全面版.doc
- 2024光伏发电工程交流汇流箱技术规范.pdf
- Unit 6 Understanding ideas Longji Rice Terraces 课件-高中英语外研版(2019)必修第一册.pptx VIP
- 《高职军事理论实用教程(第三版)》全套教学课件.pptx
- 08S208室内固定消防炮选用及安装(高清-有效).pdf
- 行政组织学简答题、述题及解答(第1-5章).doc
- 超星网课《舞台人生走进戏剧艺术》超星尔雅答案2023章节测验答案.docx
- 体育场地与设施--教学大纲.pdf
文档评论(0)