资源描述:
《mfcvc简单的聊天程序网络程序设计课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《网络程序设计》课程设计报告书题目:简单的聊天室程序专业:软件工程学号:20133481学生姓名:杜闻播指导教师:魏宁完成日期:2016.1.9一、题目及要求本题是一个简单的聊天室程序,采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显?HO本实例程序的技术要点是:◊如何从CasyncSocket类派牛!1!自己的WinSock类。◊理解WinSock类与应用程序框架的关系。◊重点学习流式套接字对象的使用。◊处
2、理网络事件的方法。本程序的需求主要为以下几点:•用户端之间的信息发送,本程序需要实现的最基本的功能。用户在界面上可以将自己需要发送的信息填入相应的对话框中,点击发送按钮后,可以将信息正常的发送给相应的其它用户,这个过程中的客户端与客户端之间使用点对点发送信息。•在C/S模式中,服务器与客户端是相互依赖的。在客户端启用以后,需要查看服务器端是否在监听状态,服务器在监听状态才能正常使用客户端,如果服务器不在监听状态,则在检测一定次数以后自动退出客户端程序。二、系统概要设计2.1使用的函数介绍:1)BOOLCAsyncSocket::Creat
3、e(UINTnSocketPort=0,intnSocketType=SOCK_STREAM,longlEvent=FD_READ
4、FDJVRTTE
5、FD_0OB
6、FD_ACCEPT
7、FD_CONNECT
8、FD_CLOSE,LPCTSTRlpszSocketAddress=NULL);用于创建一个本地套接口,其屮nSocketPort为使用的端口号,为零则表示由系统自动选择,通常在客户端都使用这个选择。nSocketType为使用的协议族,SOCK_STREAM表明使用有连接的服务,SOCK_DGRAM表明使用无连接的数据报服务o1psz
9、SocketAddress为本地的TP地址。2)BOOLCAsyncSocket::Bind(UINTnSocketPort,LPCTSTRlpszSocketAddress二NULL)作为等待连接方时产牛一个网络半关联,或者是使用UDP协议时产生一个网络半关联。3)BOOLCAsyncSockct::Listcn(intnConncctionBacklog=5)作为等待连接方时指明同时可以接受的连接数,请注意不是总共可以接受的连接数。4)BOOLCAsyncSocket::Accept(CAsyncSocket&rConnect
10、edSocket,SOCKADDR*1pSockAddr=NULL,int*lpSockAddrLen=NULL)作为等待连接方将等待连接建立,当连接建立后一个新的套接口将被创建,该套接口将会被用于通信。5)BOOLCAsyncSocket::Connect(LPCTSTRlpszHostAddress,U1NTnHostPort);作为连接方发起与等待连接方的连接,需要指明对方的IP地址和端口号。6)voidCAsyncSocket::Close();关闭套接口。7)intCAsyncSockct::Send(constvoid*lpB
11、uf,intnBufLen,intnFlags二0)1)intCAsyncSocket::Receive(void^lpBuf,intnBufLen,intnFlags二0);在建立连接后发送和接收数据,nFlags为标记位,双方需要指明相同的标记。2)intCAsyncSocket::SendTo(constvoid*lpBuf,intnBufLen,UINTnHostPort,LPCTSTRlpszHostAddress=NULL,intnFlags二0)3)intCAsyncSocket::ReceiveFrom(void*1pBu
12、f,intnBufLen,CString&eimp;rSocketAddress,UINT&rSocketPoi't,int□Flags二0);对于无连接通信发送和接收数据,需要指明对方的IP地址和端口号,nFlags为标记位,双方需要指明相同的标记。2.2控件使用:控件ID变量名称IDC_BUTTON_CONNECTm_btnConnectTDC_EDTT_SERVNAMEm_strServNameTDC_EDTT_SERVPORTm_strServPortIDCEDITMSGmstrMsg1DCLISTSENTmlistSen
13、tIDC_LIST_RECEIVEDmlistRecetved2.3变量声明:权限类型变量名功能publicCListBoxm_listSent发送窗口publicCListBoxm_list