




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WinSock编程详解,网络程序设计,2,回顾:WinSock编程接口,WinSock是什么 WinSock有什么 WinSock怎么用 WinSock加载与释放 WinSock寻址,3,WinSock编程详解,我们知道客户机和服务器进行通信时,消息的传递可以通过TCP协议,也可以通过UDP协议。 你还记得TCP和UDP的区别吗? 本次课:UDP通信编程详解 下次课:TCP通信编程详解,4,WinSock编程详解-UDP通信编程,UDP通信编程流程 UDP通信编程效果演示 UDP客户端源代码分析 UDP服务器源代码分析 主要函数的功能和用法 动手实践,5,WinSock编程详解-UDP通信编程
2、,UDP通信编程流程 UDP通信编程效果演示 UDP客户端源代码分析 UDP服务器源代码分析 主要函数的功能和用法 动手实践,6,1.UDP通信编程流程,7,WinSock编程详解-UDP通信编程,UDP通信编程流程 UDP通信编程效果演示 UDP客户端源代码分析 UDP服务器源代码分析 主要函数的功能和用法 动手实践,8,2.UDP通信编程效果演示,9,WinSock编程详解-UDP通信编程,UDP通信编程流程 UDP通信编程效果演示 UDP客户端源代码分析 UDP服务器源代码分析 主要函数的功能和用法 动手实践,10,3.UDP通信客户端源代码分析,11,3.UDP通信客户端源代码分析,思
3、考:在没有编写UDP服务器时,如何测试你的客户端程序? 方法:使用Sockect调试工具。,12,WinSock编程详解-UDP通信编程,UDP通信编程流程 UDP通信编程效果演示 UDP客户端源代码分析 UDP服务器源代码分析 主要函数的功能和用法 动手实践,13,4.UDP通信服务器源代码分析,14,4.UDP通信服务器源代码分析,使用Sockect调试工具,在没有编写UDP客户端时,测试你的服务器程序。,15,4.UDP通信服务器源代码分析,UDP客户端与服务器程序互通测试:,16,WinSock编程详解-UDP通信编程,UDP通信编程流程 UDP通信编程效果演示 UDP客户端源代码分析
4、 UDP服务器源代码分析 主要函数的功能和用法 动手实践,17,5.主要函数功能和用法,5.1 socket和closesocket函数 功能:创建一个套接字对象。 SOCKET sockect( int af, /指定地址格式,winsock仅支持AF_INET int type, /指定套接字类型 int protocol /配合type参数使用,指定使用的协议类型 ) 返回值:套接字句柄。函数执行失败时返回-1(INVALID_SOCKET)。可通过WSAGetLastError()获取相应错误代码。 type参数:Winsock支持三种套接字类型: SOCK_STREAM:流套接字,T
5、CP协议; SOCK_DGRAM:数据报套接字,UDP协议; SOCK_RAW:原始套接字,自己封装报文。,18,5.主要函数功能和用法,5.1 socket和closesocket函数 当不使用socket()创建的套接字时,就调用closesocket()函数将它关闭。 函数用法如下: int closesocket(SOCKET s); /s为要关闭的套接字句句柄 引申:你知道什么是句柄吗?,19,5.主要函数功能和用法,5.2 bind函数 功能:将套接字关联到本地地址(和端口)。 int bind( SOCKET s, /套接字句柄 const struct sockaddr *na
6、me, /要关联的本地地址 int namelen /地址的长度 ) 返回值:函数执行成功返回0,否则返回SOCKET_ERROR。可通过WSAGetLastError()获取相应错误代码。,20,5.主要函数功能和用法,5.3 sendto函数 功能:主要用于SOCK_DGRAM类型套接字向to参数指定的套接字发送数据报。对于SOCK_STREAM类型套接字,to和tolen参数被忽略。 int sendto(SOCKET s, /套接字句柄 const char FAR *buf, /要发送的数据的缓冲区地址 int len, /缓冲区长度 int flags, /指定调用方式,通常设为0
7、 const struct sockaddr FAR *to, /目标地址 int tolen ); /目标地址长度 返回值:执行成功返回接收数据的长度(可能小于len),否则返回SOCKET_ERROR。可通过WSAGetLastError()获取相应错误代码。 引申:你知道FAR指针的含义吗?,21,5.主要函数功能和用法,5.4 recvfrom函数 功能:主要用于SOCK_DGRAM类型套接口从from参数指定端的套接字接收数据报。也可用于SOCK_STREAM类型的套接字。 int recvfrom( SOCKET s, /套接字句柄 const char FAR *buf, /接收
8、数据的缓冲区地址 int len, /缓冲区长度 int flags, /指定调用方式,通常设为0 struct sockaddr FAR *from, /源地址 int FAR *fromlen); /源地址长度 返回值: 若无错误发生,recvfrom()返回读入的字节数。如果连接已中止,返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。,22,6.动手实践,动手实践环节,基于UDP协议编写C/S通信程序,要求: 服务器监听8001端口,客户机发送信息为“你的学号和姓名”,服务器收到信息后进行显示。 注意:请自己手敲代码! 可以抄写示例,但不要拷贝示例!,23,课后作业,请画出使用Wi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低功率气动阀岛用控制阀项目合作计划书
- 2025年达美航空合作协议书
- 现代能源行业发展条件分析
- 2025年转基因耐贮藏番茄项目发展计划
- 西师大版三年级数学上册全册单元知识点
- 2025年氟炭漆项目合作计划书
- 2025年智能分拣系统项目合作计划书
- 2025年语言培训行业国际化课程国际化教学理念与实践报告
- 数字水印技术在工业互联网平台中实现数据安全防护与隐私保护策略研究
- 2025年教育游戏化在儿童认知发展中的关键作用研究
- 化疗所致血小板减少症CIT
- 湖北省八校联考2024-2025学年高一下学期6月期末物理试卷(含答案)
- 管理学基础期末考试试题及答案
- 2025至2030中国覆铜板行业项目调研及市场前景预测评估报告
- 护理静脉留置针课件
- 2025年上海市中考语文试卷真题(含答案及解析)
- 2025至2030年中国地热能开发利用行业市场运营态势及未来趋势研判报告
- (网络收集版)2025年新课标全国一卷数学高考真题含答案
- 2025包头轻工职业技术学院工作人员招聘考试真题
- GB/T 8097-2025收获机械联合收割机测试程序和性能评价
- 2025年供应链管理与运作考试题及答案分享
评论
0/150
提交评论