第29章 局域网聊天工具的设计与实现实训_第1页
第29章 局域网聊天工具的设计与实现实训_第2页
第29章 局域网聊天工具的设计与实现实训_第3页
第29章 局域网聊天工具的设计与实现实训_第4页
第29章 局域网聊天工具的设计与实现实训_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第29章局域网聊天工具的设计(shj)与实现实训共十六页实训目的(md)与实训环境实训目的加深对UDP协议的理解熟悉数据报套接字的使用方法与API函数掌握局域网聊天工具的实现流程(lichng) 实训环境 运行Windows XP/ Windows Server 2003/Windows 7操作系统的PC一台Visual C+6.0/ Visual Studio 2005/Visual Studio 2010开发环境 共十六页无连接(linji)的Winsock数据报套接字局域网聊天工具通过使用无连接的Winsock数据报套接字发送或接收UDP报文来实现(shxin)。 服务器端/客户端的编程

2、分别按以下步骤进行:服务器端:创建套接字(socket)将套接字绑定到一个特定的IP和PORT用返回的套接字和客户端进行通信(sendto/recv/recvfrom)关闭套接字.客户端:创建套接字(socket)向服务器通信(sendto/recvfrom)关闭套接字. 共十六页socket()或WSASocket()socket()或WSASocket()sendto()recvfrom ()recvfrom ()sendto()closesocket()closesocket()bind()客户机服务器共十六页Winsock 的库函数初始化套接字(WSAStartup)创建(chungj

3、in)套接字(socket或WSASocket)服务器将套接字绑定到IP和PORT (bind)客户机与服务器双向通信(sendto/recvfrom)关闭套接字(closesocket)结束使用套接字(WSACleanup)共十六页将套接字绑定到指定(zhdng)IP和端口bind将套接口绑定到指定的套接字地址(IP和端口)格式:int bind( SOCKET s, const struct sockaddr * name, int namelen);参数:s -指向用Socket函数生成的Socket Descriptor name 指向网络地址的指针namelen 网络地址长度传回值:

4、成功 - 0失败 - SOCKET_ERROR (调用 WSAGetLastError() 可得知原因)说明:此函数用来(yn li)将建立的 Socket绑定到sockaddr结构的网络地址。 共十六页主机字节顺序转换(zhunhun)为网络字节顺序 htons把一个无符号(fho)短整型数从主机字节顺序转换为网络字节顺序主机字节顺序网络字节顺序共十六页htons格式u_short htons( u_short hostshort ); 参数hostshort -主机字节(z ji)顺序的无符号短整型数返回值网络字节顺序的数共十六页Winsock实现聊天工具的参考(cnko)流程 主线(zh

5、 xin)程监听线程共十六页实训步骤(bzhu)需求分析 使用winsock数据报套接字编写基于UDP协议的局域网聊天工具,要求实现如下功能:可以指定本地端口,在这个端口接收UDP数据报。可以指定目标主机IP,可以指定目标端口,向目标主机的指定端口发送UDP数据报。允许连续向对方发送信息,同时可显示对方发来的文字(wnz),以达到相互聊天的效果。输入“-q”终止聊天。 共十六页2. 代码(di m)实现阅读程序udpchat.cpp,按注释(zhsh)的要求在下划线空白处填写代码。 共十六页3.检验(jinyn)程序新建VC工程udptest,编译程序udpchat.cpp,链接生成udpte

6、st.exe。在两台电脑(dinno)上分别运行udptest.exe。两台电脑分别作为A端和B端。A端设置本地监听端口为3002,如图29.2所示。 共十六页B端同样输入自己的监听端口3000,并输入菜单命令(mng lng)“chat”,进入聊天过程。此时按提示输入对方的IP及端口号,并输入聊天消息,如图29.3所示: 共十六页此时(c sh)A端收到B发来的聊天信息,如图29.4所示。同样,如果A要向B发送信息,可以输入“chat”命令,向B发送信息。多人聊天时亦是如此,只要知道对方IP及端口即可。 共十六页思考(sko)与讨论本程序(chngx)当中,输入聊天信息时如果不使用“cin.

7、getline(szBuffer,MAXBUFFER);”语句而用“cin szBuffer;”替换,会导致什么结果? 能否对该软件进行改进,让软件运行时自动显示本机的IP,以方便告知聊天的对方。考虑采用MFC编程,实现带窗口的聊天程序,使界面更加友好。共十六页内容摘要第29章。实训目的与实训环境。用返回的套接字和客户端进行通信(sendto/recv/recvfrom)。socket()或WSASocket()。将套接口绑定到指定的套接字地址(IP和端口)。s -指向用Socket函数生成(shn chn)的Socket Descriptor。name 指向网络地址的指针。此函数用来将建立的 Socket绑定到sockaddr结构的网络地址。主机字节顺序转换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论