Winsock对Berkeley socket的扩充异步请求服务.PPT

Winsock对Berkeley socket的扩充异步请求服务.PPT

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Winsock对Berkeley socket的扩充异步请求服务

网络编程技术概述 网络编程技术 直接网卡编程(可编程芯片) 基于packet driver的编程技术 基于NDIS的网络编程 VPACKET,PACKET32 Berkeley Sockets编程技术 Winsock JAVA网络编程 Winsock 一、? Winsock概述 Windows网络编程规范-Windows Sockets是Windows下得到广泛应用的、开放的、支持多种协议的socket网络编程接口。 Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例,定义了一套Windows下的网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以便充分地利用Windows消息驱动机制和异步I/O选择进行编程。 Winsock winsock有开发组件和运行组件二大部分 开发组件供开发应用程序使用,包括定义的宏常量、数据结构和函数调用接口原型。 运行组件是winsock应用程序接口的动态链接库—winsock.DLL,应用程序在执行时通过装入DLL实现网络通信功能。 Winsock所处的位置 应用程序调用Windows Sockets的API实现相互之间的通信,Windows Sockets又利用下层的网络通信协议和操作系统调用实现实际的通信工作。 Windows 平台支持的Winsock 版本 构建编程环境 Winsock有两个主要的版本,即Winsock1和Winsock2 头文件:编写与Winsock1兼容的程序需要引用头文件WINSOCK.H,如果编写使用Winsock2的程序,需要引用WINSOCK2.H;此外还有一个MSWSOCK.H头文件,它是专门用来支持在Windows平台上高性能网络程序扩展功能的 库文件:使用WINSOCK.H头文件时,同时需要库文件WSOCK32.LIB;使用WINSOCK2.H时,则需要WS2_32.LIB;如果使用MSWSOCK.H中的扩展API,则需要MSWSOCK.LIB Winsock的初始化与卸载 每个Winsock 应用都必须加载Winsock DLL的相应版本。 加载Winsock 库是通过调用WSAStartup函数实现的。 如果调用Winsock函数之前,没有加载Winsock 库,就会返回一个SOCKET_ERROR,对应的错误信息是WSANOTINITIALISED。 在通信应用程序的最后调用WSACleanup来释放所使用的Windows Sockets DLL WInsock2 程序的大致框架 Winsock函数 二、 Winsock提供的函数调用 WinSock包括三类函数: Berkeley socket函数 检索有关域名、通信服务和协议等Internet信息的数据库函数 Berkekley socket例程的Windows专用的扩展函数 Winsock WinSock函数分为阻塞和非阻塞函数。创建一个socket时,可以指定它是否为阻塞。 在缺省情况下,Berkeley的Socket函数和WinSock都创建“阻塞”的socket。 阻塞socket可以通过使用select函数或者WSAAsynSelect函数将指定操作(如接收、发送、异常等)变成非阻塞操作。 Winsock 2.1 基本套接口函数 ? Windows Sockets规范包含了以下30个Berkeley风格的套接口例程(与Berkeley socket兼容): ?* 表示该函数为阻塞方式。 基本套接口函数 基本套接口函数 recv()* 从一个已连接的套接口接收数据(面向连接) recvfrom()* 从一个的套接口接收数据(无连接) send()* 向一已连接的套接口发送数据(面向连接) sendto()* 向套接口发送数据(无连接) select()* 执行同步I/O多路复用。 setsockopt() 设置与指定套接口相关的属性选项。 Close() 关闭套接口 shutdown() 关闭一部分全双工的连接。 *表示例程在应用于阻塞套接口时会阻塞。 基本套接口函数 htonl() 把32位的数字从主机字节顺序转换到网络字节顺序 htons() 把16位的数字从主机字节顺序转换到网络字节顺序 ntohl() 把32位数字从网络字节顺序转换为主机字节顺序 ntons() 把16位数字从网络字节顺序转换为主机字节顺序 inet_addr() 把一个十进制“.”分IP地址转换成二进制IP地址 inet_ntoa()把一个二进制IP地址转换成十进制“.”分IP地址 ioctlsocket() 套接口I/O控制,用于设置套接口的I/O模

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档