基于tcp的网络聊天室的设计

基于tcp的网络聊天室的设计

ID:32553652

大小:86.80 KB

页数:5页

时间:2019-02-12

基于tcp的网络聊天室的设计_第1页
基于tcp的网络聊天室的设计_第2页
基于tcp的网络聊天室的设计_第3页
基于tcp的网络聊天室的设计_第4页
基于tcp的网络聊天室的设计_第5页
资源描述:

《基于tcp的网络聊天室的设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于TCP的网络聊天室的设计【基于TCP的网络聊天室的设计】-实验指导·一、实验目的1.掌握通信规范的制定及实现。2.练习较复杂的网络编程,能够把协议设计思想应用到现实应用中。1.二、实验内容和要求 1.进一步熟悉VC++6编程环境;2.利用VC++6进行较复杂的网络编程,完成网络聊天室的设计及编写; 三、实验(设计)仪器设备和材料1.计算机及操作系统:PC机,Windows;2.网络环境:可以访问互联网;·四、TCP/IP程序设计基础基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,

2、程序一般分为服务器端和用户端两部分。设计思路(VC6.0下):第一部分 服务器端一、创建服务器套接字(create)。二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。三、接受来自用户端的连接请求(accept)。四、开始数据传输(send/receive)。五、关闭套接字(closesocket)。第二部分 客户端一、创建客户套接字(create)。二、与远程服务器进行连接(connect),如被接受则创建接收进程。三、开始数据传输(send/receive)。四、关闭套接字(

3、closesocket)。CSocket的编程步骤:(注意我们一定要在创建MFC程序第二步的时候选上WindowsSocket选项,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。)???(1)构造CSocket对象,如下例:CSocketServerSocket;CSocketClientSocket;(2)CSocket对象的Create函数用来创建WindowsSocket,Create()函数会自行调用Bind()函数将此Socket绑定到指定的地址上面。如下

4、例:ServerSocket.Create(823);//服务器端需要指定一个端口号,我们用823。ClientSocket.Create();//客户端不用指定端口号。(3)现在已经创建完基本的Socket对象了,现在我们来启动它,对于服务器端,我们需要这个Socket不停的监听是否有来自于网络上的连接请求,如下例:ServerSocket.Listen(5);//参数5是表示我们的待处理Socket队列中最多能有几个Socket。(4)对于客户端我们就要实行连接了,具体实现如下例:ClientSoc

5、ket.Connect(CStringSerAddress,UnsingedintSerPort);//其中SerAddress是服务器的IP地址,SerPort是端口号。(5)服务器是怎么来接受这份连接的呢?它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。如下例:CSocketReceiveSocket;ServerSocket.Accept(ReceiveSocket);(6)如果想在两个程序之间接收或发送信

6、息,MFC也提供了相应的函数。如下例:ServerSocket.Receive(String,Buffer);//String是你要发送的字符串,Buffer是发送字符串的缓冲区大小。ServerSocket.Send(String,Butter);//String是你要接收的字符串,Buffer是接收字符串的缓冲区大小。框架实现:客户端在MFC中创建对话框:voidCClientDlg::OnButtonReceive(){ CStringstrAddr="202.112.73.150"; unsig

7、nedintnPort=5050; if(!ChatReceive.Create()) {   MessageBox("createfailed","Receive",MB_ICONSTOP);   return; } else {   ChatReceive.Connect(strAddr,nPort); }charsReceive[1024]; strAddr.Format(sReceive); ChatReceive.Receive(sReceive,1024,0); m_strEdit=sRec

8、eive; UpdateData(FALSE); ChatReceive.Close();}???服务器端创建对话框:voidCServerDlg::OnButtonSend(){ //TODO:Addyourcontrolnotificationhandlercodehere CStringstrSendText; unsignedintnPort=5050; GetDlgItemText(IDC_EDIT,strSendText); i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。