基于TCP的聊天程序的设计与开发.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?贞脚 ?贞脚 《基于TCP的聊天程序设计与开发》 实验指导 实验目的 通过设计网络协议及应用程序来加深理解网络各层的功能和机理,特别是对网络层、运 输层、应用层的理解。 独立编写基于TCP的网络应用程序,独立上机调试程序,掌握基于TCP的网络应用基本 技术。 培养独立思考问题、分析问题的能力和规化工程设计的能力。综合运用所学的知识去解 决实践中的应用问题,掌握实验技能。为以后的毕业设计与实际工作打下基础。 实验方式与基本要求 独立编写程序,独立上机调试程序,独立撰写实验报告 实验基本步骤 本试验采取分组进行协议设计,然后各自进行独立的完整的程序设计(包括概要设计与 代码设计),然后互相通信。(如果设计正确,这组程序的任何一个都应与其它程序是互通的)。 步骤1:程序总体结构:C/S结构。C与S分开。 步骤2:服务器S程序基本构成 S主进程初始化;例如 VOid CServerSocket::Start () { this~Crea te(l 169) ; //创建端 口进程 th is-Listen(): } 主进程进入监听:例如 LiSten();//开始监听 重载虚函数OnACCept,响应客户请求 VOid CServerSocket::OnACCePt(int nErrorCode) { // TODO: Add your SPeCialiZed COde here and/or CalI the base CIaSS SoCKADDR SOCkAddr; int i=0; while(iSLAVEMAX){ if(slave[i]==NULL){ slave [i] = new CSerVerSIaVeSOCket (dig, this, i); 〃创建子进程 this-Accept (*slave [i].SockAddr); 〃接受客户连接请求 dlg-SetForegroundWindow() J CString idstr; idstr. FOrmat (w%d, i+l); 〃加上客户端编号 slave [i]-Send(连接成功啦λ-λ,13); 〃发送连接成功消息给客户 CString c_IP; UlNT C-Port; SIaVe[i]-GetPeerName (c_IP,c_POrt);〃获取客户端 IP 和端口 CString StrPort; strPort. FOrmat( n%d,C-POrt); Char hostStr[50];//添加客户宿息 StrCPy (hostStrf W客户+idstr+n [w+c-IP+w : h+strPort+l); dlg-m-hostList. AddString (hostStr); 〃客户上线 break; ) i++; } if(i==SLAVEMAX){ dlg-m,hostList. AddString(W 巳超过最接数 T.Tf,); } CSocket::OnACCePt(nEιτorCode); } 释放一个连接 VOid CServerSocket::DeIeteSlaVeSOCket(int id) { delete slave[id];〃///////////////〃///关闭子进程 slave[id] = NULL; } 从进程重载虚函数OnReceive,处理接收到的数据;例如 VOid CSerVerSla VeSOCket:: OnReCei Ve (ιF t nErrorCode) { // TODO: Add your SPeCialiZed COde here and/or Call the base CIaSS Char rbuf[256]; Int n; n = thi s-Recei Ve (rbuf, 256): //////////////////? 受消息 rbuf[n] = r ?0r; this~GetPeerName (C IP, c__POrt) ;/〃//////获取对方 IP,端口 Char buf[512]={0}; StrCPy (buf,客户+uid+ : n);/////////////////////显示客户号 CTilne tt; //////加上发送时间 StrCat (buf. it. GetCUrrentTime (). FOrmat (rf%H:%M: %Sfr). GetSuffer (8)): StrCa t (buf9 ^?r?n fr); dlg-∏Lshow += buf;////////////////// strcpy(buft n); StrCa t (buft rbuf); StrCiIt (buf, ?r?n) ;/〃///〃〃/〃///〃〃/

文档评论(0)

qingsheng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档