160 likes | 357 Views
Winsock 介绍. 西南林学院计算机与信息科学系 董跃宇 dyy@cs2.swfc.edu.cn. Winsock 是什么?. Windows 下网络编程的规范 Windows 下得到广泛应用的、开放的、支持多种协议的网络编程接口。 1991 年发布 1.0 版 在 Intel 、 Microsoft 、 Sun 、 SGI 、 Informix 、 Novell 等公司的全力支持下,已成为 Windows 网络编程的事实上的标准。. Windows socket 与 BSD socket.
E N D
Winsock介绍 西南林学院计算机与信息科学系 董跃宇 dyy@cs2.swfc.edu.cn
Winsock是什么? • Windows下网络编程的规范 • Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。 • 1991年发布1.0版 • 在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。
Windows socket与BSD socket • Windows Sockets规范以BSD Socket接口为范例定义了一套Micosoft Windows下网络编程接口。 • 它不仅包含了熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。
Windows socket规范 • Windows Socket规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。 • 在一个特定版本Windows的基础上,Windows Socket也定义了一个二进制接口(ABI),以此来保证应用Windows Sockets API的应用程序能够在任何网络软件供应商的符合Windows Socket规范的实现上工作。 • 这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套Windows Sockets规范的网络软件,我们称之为Windows Sockets兼容的。
Socket原理 • Socket通常称为套接字、套管、插口,是两个程序间通信链路的端点。 • Socket实际上是一个编程接口,为网络应用程序提供各种接口函数。
Socket的类型 • 流式套接字 • 数据报套接字 • 原始套接字
流式套接字 • 最常用的套接字 • 提供面向连接的、无差错的、发送顺序一致的、包长度不限和非重复的网络信息的传输 • TCP协议使用此类套接字
数据报套接字 • 无连接的服务,以独立的数据报进行传输,不保证顺序性、可靠性和无重复性 • UDP采用此种套接字
原始套接字 • 提供对下层网络的通信协议的访问 • 主要用于开发新的协议或用于提取较隐蔽的功能
Winsock的寻址方式和字节顺序 • TCP/IP使用IP地址和端口号来指定一个地址,winsock为了兼容多个协议采用一种通用的寻址方式。 • 特定实现所依赖的基础设施的字节顺序与网络字节顺序可能存在差别。如果不相同,需要进行必要的转换。
Winsock编程流程(TCP服务器端) • 套接字的创建 • 套接字的绑定 • 设置套接字进入监听状态 • 接受连接请求 • 收发数据 • 套接字的关闭
Winsock编程流程(TCP客户端) • 套接字的创建 • 套接字的绑定(可选) • 发起连接请求 • 收发数据 • 套接字的关闭
Winsock编程流程(UDP服务器端) • 创建套接字 • 套接字绑定 • 收发数据 • 关闭套接字
Winsock编程流程(UDP客户端) • 创建套接字 • 收发数据 • 关闭套接字