基于TCP的聊天程序设计与开发(精编版)

上传人:说**** 文档编号:221495359 上传时间:2021-12-11 格式:DOCX 页数:12 大小:375.64KB
返回 下载 相关 举报
基于TCP的聊天程序设计与开发(精编版)_第1页
第1页 / 共12页
基于TCP的聊天程序设计与开发(精编版)_第2页
第2页 / 共12页
基于TCP的聊天程序设计与开发(精编版)_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于TCP的聊天程序设计与开发(精编版)》由会员分享,可在线阅读,更多相关《基于TCP的聊天程序设计与开发(精编版)(12页珍藏版)》请在金锄头文库上搜索。

1、基于 TCP的聊天程序设计与开发作者:日期:基于 TC的聊天程序设计与开发一实验目的实验指导通过设计网络协议及应用程序来加深理解网络各层的功能和机理, 特别是对网络层、运输层、应用层的理解。独立编写基于P 的网络应用程序, 独立上机调试程序, 掌握基于 TCP的网络应用基本技术。培养独立思考问题、分析问题的能力和规范化工程设计的能力。综合运用所学的知识去解决实践中的应用问题,掌握实验技能。为以后的毕业设计与实际工作打下基础。二实验方式与基本要求独立编写程序,独立上机调试程序,独立撰写实验报告三实验基本步骤本试验采取分组进行协议设计,然后各自进行独立的完整的程序设计(包括概要设计与 代码设计),

2、然后互相通信。( 如果设计正确, 这组程序的任何一个都应与其它程序是互通的)。步骤 1:程序总体结构 :C结构。 C 与分开。步骤 2: 服务器 S 程序基本构成S 主进程初始化;例如oidCSeverSocket:: St r( )this-Cr ate( 169) ; /创建端口进程is-Listen( );主进程进入监听;例如istn();/ 开始监听重载虚函数OnAcc t,响应客户请求 oi CServe Socket : O ccept(i t nErro Co )/ TODO:Addyospeciali ed ode re an / r callthe ase lassSOCKA

3、DDSo k ddr; nt i=0; hile ( i S AVE AX) i (slave =NULL)sla i= new CServ rSlave cket(dl ,thi ,i) ; /创建子进程this-Ac p( *slave ,&So kA dr ) ; /接受客户连接请求dlg-SetForegroundW ndo (); C tring i r;i tr o m t( %d ,i+ );/ 加上客户端编号sl ve i-S nd( 连接成功啦-, ); /发送连接成功消息给客户CS ring _IP;UI Po t;sla e - GetP erN me(c_I ,c_ o

4、rt) ; / 获取客户端IP 和端口CSt in str t;strPort.F ma ( % ,c_Po t) ; cha host r 50 ; /添加客户信息 c y(hos Str, 客户 idstr+c_ P+:+s r rt+) ;dl - _ho tLis .Add trin (hostStr); /客户上线beak;i+ ;i ( SL E AX ) dlg- _hos Lis Ad Strin ( 已超过最大连接数T);CSocket:O Accept ( nErrorC );释放一个连接v d Serv r ocke : el teSlav So ke (in id )

5、lete l v id;/ / / 关闭子进程s avei = ULL;从进程重载虚函数OnR ceive,处理接收到的数据;例如void CSe eSla eSocke:Onecei(intnErro C e) OO:Add youspecilizedcode her and/o cllte base classcar rbu 2 6; int n;n = t i- cev( buf,25);/ /接受消息r fn =0;his- Gt erNa e(c P,c_ ot);/ / /获取对方 ,端口aru512 0 ;strcy( f, 客户 u d : );/ / / /显示客户号CTi

6、e t;/ /加上发送时间stc(tbuf,tt.GetCurr time().For at( H: M:%S ).GetBuf r(8);strc(bf, rn);d -m_s o += buf; /srcpy(b f,) ;rca (buf ,rbuf) ;strca( buf, rn) ; / / / 显示收到的信息dlg _ow = buf; / / dlg UpdateDat (as);l -mshwCtr .LineS ro l(dlg-m_ hCtrl GetL neCo();/ 新消息总显示C cket:On eeive(nEror ode);由于要重载虚函数,所以,必须定义一

7、个Socket 的派生类。从进程重载虚函数OnC ose,释放连接 ,关闭进程voi CServerSlaveS cket:OnCl se( t nEr o Cod )/ TODO:A yoursp c al z d ode er and/or al he a e classm_u ing = f s ;/ / / / / 删除连接客户/ / / / /dlg m_ os List.D leteStr ng( lg- stList. i d trin ( 1, 客户 id); is- lose();/ 对应客户端关闭cs De eteSl ve ock t( m_i ) ; / 调用主进程的连

8、接释放函数CSocket : : n lose(n rro C d );向客户发送信息;例如vid CSer rDlg:Onsen ()/ TOD : dy u ontro notificat onhndl rode ere pat Data();ha sbf 56;msend.GetWi wTe (sbuf ,256); /获取发送框的字符串msend etWindowText();/编辑框置空_end.StFo ();/ 焦点返回编辑框 (trlen ( b )!=0)if(m stis.GCurSel() =0) /发送给所有连接上的客户for(int 0;i AVEMA ;+ )if

9、( erversokt-s avi! NU )psrve ocet lvi- e dMs(sbuf);ese/ /发送给选中的客户p rversocket-sl _hostLi t.GtCurSel()-1 SedMsg(sbuf); ca buf512 =0;stcy( uf, 自己: );CTie tt;/ / 显示发送时间stcat (buf,tt eCurre t ime(). ormat(%H :%M:%S) Bufer(8); ra(b);m_sow uf; / / s cpy( f,); rca (b f,sbuf);srcat (buf,rn ); / / 显示发送内容m_ho

10、w =uf; / /UdteDt( fal ) ;m owCrl. inScroll(m_sowC l.Get ne ut(); / /编辑框自动滚动发送表情 :voidCServrDlg:On edMod()/ TOD : A d ur c nt l not icat nhnlcode h re Ctringtr,data;/ / / / 插入表情 mood r.GetLB ext(m_mood trl.G turSe (),str) ;m_send.GtW ndo ext( ata); m_endStind Text(dtastr);清屏:v d CS rverDlg: Cl a Msg() /清屏/ ODO:Add yo r contro noti icati n ha dl r co re m_sho =_T( ) ;Upda e ata(f se);步骤 3: 客户 C 程序基本构成创建 TCP 客户 ;voi Cl entDl :O conn c ()/ O : Adyou co t o no ifi ation andle ode her c Creat (0) ;/ /创建端口if ( c- Conn c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号