基于TCP的聊天程序设计与开发精要.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档