欢迎来到天天文库
浏览记录
ID:57031342
大小:871.00 KB
页数:24页
时间:2020-07-27
《网络程序设计03WinSock编程详解UDP通信编程课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WinSock编程详解《网络程序设计》2回顾:WinSock编程接口WinSock是什么WinSock有什么WinSock怎么用WinSock加载与释放WinSock寻址3WinSock编程详解我们知道客户机和服务器进行通信时,消息的传递可以通过TCP协议,也可以通过UDP协议。你还记得TCP和UDP的区别吗?本次课:UDP通信编程详解下次课:TCP通信编程详解4WinSock编程详解-UDP通信编程UDP通信编程流程UDP通信编程效果演示UDP客户端源代码分析UDP服务器源代码分析主要函数的功能和用
2、法动手实践5WinSock编程详解-UDP通信编程UDP通信编程流程UDP通信编程效果演示UDP客户端源代码分析UDP服务器源代码分析主要函数的功能和用法动手实践61.UDP通信编程流程7WinSock编程详解-UDP通信编程UDP通信编程流程UDP通信编程效果演示UDP客户端源代码分析UDP服务器源代码分析主要函数的功能和用法动手实践82.UDP通信编程效果演示9WinSock编程详解-UDP通信编程UDP通信编程流程UDP通信编程效果演示UDP客户端源代码分析UDP服务器源代码分析主要函数的功能和
3、用法动手实践103.UDP通信客户端源代码分析113.UDP通信客户端源代码分析思考:在没有编写UDP服务器时,如何测试你的客户端程序?方法:使用Sockect调试工具。12WinSock编程详解-UDP通信编程UDP通信编程流程UDP通信编程效果演示UDP客户端源代码分析UDP服务器源代码分析主要函数的功能和用法动手实践134.UDP通信服务器源代码分析144.UDP通信服务器源代码分析使用Sockect调试工具,在没有编写UDP客户端时,测试你的服务器程序。154.UDP通信服务器源代码分析UDP
4、客户端与服务器程序互通测试:16WinSock编程详解-UDP通信编程UDP通信编程流程UDP通信编程效果演示UDP客户端源代码分析UDP服务器源代码分析主要函数的功能和用法动手实践175.主要函数功能和用法5.1socket和closesocket函数功能:创建一个套接字对象。SOCKETsockect(intaf,//指定地址格式,winsock仅支持AF_INETinttype,//指定套接字类型intprotocol//配合type参数使用,指定使用的协议类型)返回值:套接字句柄。函数执行失败
5、时返回-1(INVALID_SOCKET)。可通过WSAGetLastError()获取相应错误代码。type参数:Winsock支持三种套接字类型:SOCK_STREAM:流套接字,TCP协议;SOCK_DGRAM:数据报套接字,UDP协议;SOCK_RAW:原始套接字,自己封装报文。185.主要函数功能和用法5.1socket和closesocket函数当不使用socket()创建的套接字时,就调用closesocket()函数将它关闭。函数用法如下:intclosesocket(SOCKETs)
6、;//s为要关闭的套接字句句柄引申:你知道什么是句柄吗?195.主要函数功能和用法5.2bind函数功能:将套接字关联到本地地址(和端口)。intbind(SOCKETs,//套接字句柄conststructsockaddr*name,//要关联的本地地址intnamelen//地址的长度)返回值:函数执行成功返回0,否则返回SOCKET_ERROR。可通过WSAGetLastError()获取相应错误代码。205.主要函数功能和用法5.3sendto函数功能:主要用于SOCK_DGRAM类型套接字向
7、to参数指定的套接字发送数据报。对于SOCK_STREAM类型套接字,to和tolen参数被忽略。intsendto(SOCKETs,//套接字句柄constcharFAR*buf,//要发送的数据的缓冲区地址intlen,//缓冲区长度intflags,//指定调用方式,通常设为0conststructsockaddrFAR*to,//目标地址inttolen);//目标地址长度返回值:执行成功返回接收数据的长度(可能小于len),否则返回SOCKET_ERROR。可通过WSAGetLastErro
8、r()获取相应错误代码。引申:你知道FAR指针的含义吗?215.主要函数功能和用法5.4recvfrom函数功能:主要用于SOCK_DGRAM类型套接口从from参数指定端的套接字接收数据报。也可用于SOCK_STREAM类型的套接字。intrecvfrom(SOCKETs,//套接字句柄constcharFAR*buf,//接收数据的缓冲区地址intlen,//缓冲区长度intflags,//指定调用方式,通常设为0structsockaddrFAR*
此文档下载收益归作者所有