版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年度广州市天河区企业并购合同3篇
- 2025年度学校教育教学用品采购合同汇编2篇
- 2025年度新能源项目新担保合同范本3篇
- 铜绞线电缆购销合同3篇
- 风力发电拉管工程合同3篇
- 饭店租赁合同格式3篇
- 2025届福建省厦门市重点中学高三第二次联考语文试卷含解析
- OpenCV计算机视觉基础教程(Python版)教学教案
- 2024年度二人合伙光伏发电项目投资合同3篇
- 幼儿园绘本故事《三只小猪盖房子》教学课件全文
- 2024-2030年中国室内滑雪场市场需求预测及发展规划研究报告
- 期末综合素养评价一(试题)-2024-2025学年三年级上册科学教科版
- 动车运用所施工组织设计
- 新闻媒体编辑与发布规范流程
- 03S702钢筋混凝土化粪池-标准图集
- 耳鼻咽喉-头颈外科:绪论
- 统编版 七年级上册 第五单元 活动·探究 任务一 体会人与动物的关系 20 狼(教学设计)
评论
0/150
提交评论