- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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) ;/〃///〃〃/〃///〃〃/
您可能关注的文档
最近下载
- 工厂转让合同格式范本.doc VIP
- 静脉输液安全隐患及防范措施.pptx VIP
- 专题27.4 相似三角形的性质【十大题型】-2024-2025学年九年级数学下册举一反三系列(人教版).pdf VIP
- 体育教育个人职业生涯规划书.docx VIP
- 梁模板碗扣钢管高支撑架计算600.doc VIP
- 黄磷尾气在循环流化床锅炉中的掺烧使用介绍.PDF VIP
- 碗扣钢管楼板模板支架计算书97027.doc VIP
- Boss Roland逻兰ME-90B 贝斯综合效果器[Simplified Chinese] ME-90B Reference Manual 说明书用户手册.pdf
- 玩转手机银行APP.doc VIP
- 征信报告模板详细版带水印可编辑2025年9月新版.pdf VIP
原创力文档


文档评论(0)