基于vc++6.0的udp聊天器

基于vc++6.0的udp聊天器

ID:3670468

大小:226.85 KB

页数:13页

时间:2017-11-22

基于vc++6.0的udp聊天器_第1页
基于vc++6.0的udp聊天器_第2页
基于vc++6.0的udp聊天器_第3页
基于vc++6.0的udp聊天器_第4页
基于vc++6.0的udp聊天器_第5页
资源描述:

《基于vc++6.0的udp聊天器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊长春大学课程设计纸目录一、需求分析2二、功能介绍2三、设计步骤2四、详细设计3五、设计总结6六、程序清单7七、参考文献13一、需求分析共13页第13页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊长春大学课程设计纸1、设计目的学会使用Winsock控件的UDP方式实现网络聊天程序,了解基于面向无连接方式连接的程序设计方式。开发一个专用于实现两台计算机之间即时通讯的软件,以方便两台计算机之间信息的交流。UDP聊天器是具有很好的适应性和实用性的即时

2、通讯软件。2、网络技术背景UDP是无连接的,在协商过程中,不需要与应答方建立连接,而是直接吧数据包发送给对方。由于UDP的不可靠性,它适用于一次性传送少量数据,并要求的可靠性不高的环境。3、编程环境VC++6.0;基于MFC编程一、功能介绍基于UDP实现一对一的局域网聊天功能l输入服务器端IP地址和聊天人名字l发送消息给服务器端,并显示服务器端回传的消息l接受客户端发送的消息,转发消息给客户端,并显示客户端的消息l使用配置文件chat.ini保存配置信息二、设计步骤1.服务器端创建套接字(socket)将套接字绑定到一个本地的IP地址及端口上,等待接受

3、对端数据(receive),关闭套接字。2.客户端创建套接字,向服务器发送数据(sendto),关闭套接字。三、详细设计1、流程图共13页第13页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊长春大学课程设计纸开始UDP服务器Socket()UDP客户socket()Bind()ReceivefromSendto()数据请求NOYES处理请求数据应答Receivefrom()Sendto()Close()结束(图4.1.1总体流程图)开始读取配置信息共13页第13页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊

4、┊┊┊┊┊┊┊┊┊┊┊长春大学课程设计纸启动服务器创建套接字,用于收发信息数据接收包数据接收包发送消息保存配置信息结束(图4.1.2服务器模块流程图)开始读取配置信息客户端共13页第13页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊长春大学课程设计纸创建套接字,用于收发信息数据发送包数据发送包输入服务器IP发送消息保存配置信息结束(图4.1.3服务器模块流程图)2、界面设计(图4.2.1初始客户端和服务器端界面)共13页第13页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊长春大学课程设

5、计纸(图4.2.2服务器端)(图4.2.3客户端)一、设计总结在UDP聊天器的设计过程中,加深了对理论知识和VC++6.0控件及MFCSocket的理解,掌握了socket(),bind(),sendto()和recvfrom()函数的使用方法,感受到MFC设计的界面相比DOS命令行界面更加便捷和灵活。使我的网络编程能力得到了提高。同时,也发现了许多不足之处,如发送信息的长度受到限制,不能满足用户更多字数的聊天需求,这个问题,将是我今后调整和修改设计的方向。在这次的课程设计中,我充分体会到团队合作的重要性。共13页第13页┊┊┊┊┊┊┊┊┊┊┊┊┊装┊

6、┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊长春大学课程设计纸一、程序清单主要程序代码:UDP服务器端:SOCKETsock;UINTthread(LPVOIDv){CUDPDlg*dlg=(CUDPDlg*)AfxGetApp()->GetMainWnd();//取得主窗口的句柄SOCKETsock;SOCKADDR_INsin;sock=socket(AF_INET,SOCK_DGRAM,0);//建立UDP套接字if(sock==SOCKET_ERROR){AfxMessageBox("产生Sock失败!");return-1;}sin.si

7、n_family=AF_INET;sin.sin_addr.s_addr=htonl(INADDR_ANY);sin.sin_port=htons(RECV_PORT);if(bind(sock,(SOCKADDR*)&sin,sizeof(sin))==SOCKET_ERROR)//绑定套接字{AfxMessageBox("绑定套接字出错!");closesocket(sock);return-1;}while(true){charszBuffer[4096];DWORDdwRead=0;SOCKADDRsa;intnLen;intnSaLen=si

8、zeof(sa);nLen=recvfrom(sock,szBuffer,sizeof(szB

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

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

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