第29章局域网聊天工具的设计与实现实训摘要.pptVIP

第29章局域网聊天工具的设计与实现实训摘要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第29章 局域网聊天工具的设计与实现实训 实训目的与实训环境 实训目的 加深对UDP协议的理解 熟悉数据报套接字的使用方法与API函数 掌握局域网聊天工具的实现流程 实训环境 运行Windows XP/ Windows Server 2003/Windows 7操作系统的PC一台 Visual C++6.0/ Visual Studio 2005/Visual Studio 2010开发环境 无连接的Winsock数据报套接字 局域网聊天工具通过使用无连接的Winsock数据报套接字发送或接收UDP报文来实现。 服务器端/客户端的编程分别按以下步骤进行: 服务器端: 创建套接字(socket) 将套接字绑定到一个特定的IP和PORT 用返回的套接字和客户端进行通信(sendto/recv/recvfrom) 关闭套接字. 客户端: 创建套接字(socket) 向服务器通信(sendto/recvfrom) 关闭套接字. Winsock 的库函数 初始化套接字(WSAStartup) 创建套接字(socket或WSASocket) 服务器将套接字绑定到IP和PORT (bind) 客户机与服务器双向通信(sendto/recvfrom) 关闭套接字(closesocket) 结束使用套接字(WSACleanup) 将套接字绑定到指定IP和端口 bind 将套接口绑定到指定的套接字地址(IP和端口) [格式]: int bind( SOCKET s, const struct sockaddr * name, int namelen); [参数]: s -指向用Socket函数生成的Socket Descriptor name – 指向网络地址的指针 namelen –网络地址长度 [传回值]: 成功 - 0 失败 - SOCKET_ERROR (调用 WSAGetLastError() 可得知原因) [说明]: 此函数用来将建立的 Socket绑定到sockaddr结构的网络地址。 主机字节顺序转换为网络字节顺序 htons 把一个无符号短整型数从主机字节顺序转换为网络字节顺序 htons [格式] u_short htons( u_short hostshort ); [参数] hostshort -主机字节顺序的无符号短整型数 [返回值] 网络字节顺序的数 Winsock实现聊天工具的参考流程 实训步骤 需求分析 使用winsock数据报套接字编写基于UDP协议的局域网聊天工具,要求实现如下功能: 可以指定本地端口,在这个端口接收UDP数据报。 可以指定目标主机IP,可以指定目标端口,向目标主机的指定端口发送UDP数据报。 允许连续向对方发送信息,同时可显示对方发来的文字,以达到相互聊天的效果。 输入“-q”终止聊天。 2. 代码实现 阅读程序udpchat.cpp,按注释的要求在下划线空白处填写代码。 3.检验程序 新建VC工程udptest,编译程序udpchat.cpp,链接生成udptest.exe。在两台电脑上分别运行udptest.exe。两台电脑分别作为A端和B端。A端设置本地监听端口为3002,如图29.2所示。 B端同样输入自己的监听端口3000,并输入菜单命令“chat”,进入聊天过程。此时按提示输入对方的IP及端口号,并输入聊天消息,如图29.3所示: 此时A端收到B发来的聊天信息,如图29.4所示。同样,如果A要向B发送信息,可以输入“chat”命令,向B发送信息。多人聊天时亦是如此,只要知道对方IP及端口即可。 思考与讨论 本程序当中,输入聊天信息时如果不使用“cin.getline(szBuffer,MAXBUFFER);”语句而用“cin szBuffer;”替换,会导致什么结果? 能否对该软件进行改进,让软件运行时自动显示本机的IP,以方便告知聊天的对方。 考虑采用MFC编程,实现带窗口的聊天程序,使界面更加友好。 * * socket()或WSASocket() socket()或WSASocket() sendto() recvfrom () recvfrom () sendto() closesocket() closesocket() bind() 客户机 服务器 主机字节顺序 网络字节顺序 主线程 监听线程 * * *

文档评论(0)

基本资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档