2024年3月27日发(作者:)

Winsock是什么?

• Windows下网络编程的规范

• Windows下得到广泛应用的、开放的、支持多种协议的网络编程

接口。

• 已成为Windows网络编程的事实上的标准。

Windows socket规范

• Windows Socket规范本意在于提供给应用程序开发者一套简单的

API,并让各家网络软件供应商共同遵守。

Socket原理

• Socket通常称为套接字、套管、插口,是两个程序间通信链路的

端点。

• Socket实际上是一个编程接口,为网络应用程序提供各种接口函

数。

Winsock基本概念

• 多数网络协议都由软件实现,而且几乎所有计算机系统都将网络

协议的实现作为操作系统的一部分,操作系统提供给用户的程序

接口叫做应用程序编程接口(API )。

• 套接字接口(Socket Interface)就是一种API

套接字及类型

• 套接字(socket)是网络通信的基本构件,是可以被命名和寻址的

通信端点,使用中的每一个套接字都有其类型和与之相连的进

程。

• 套接字存在于通信区域中,通信区域也称地址族

• 套接字通常只与同一区域中的套接字交换数据(也可跨区域通

信,但要执行某种转换进程之后才能实现)。

• TCP/IP的socket提供三种类型的套接字:

流式套接字(SOCK_STREAM)

• 提供一个面向连接的、可靠的数据传输服务,

• 内设流量控制,避免数据流超限;数据被看作是字节

流,无长度限制。

• 文件传输协议(FTP)即使用流式套接字。

数据报式套接字(SOCK_DGRAM)

• 提供一个无连接服务。

• 数据报以独立包形式被发送,不提供无错保证,数据可能

丢失或重复,且接收顺序混乱。

• 网络文件系统(NFS)使用数据报式套接字。

原始式套接字(SOCK_RAW)

• 该接口允许对较低层协议,如IP、ICMP直接访问。

• 常用于检验新的协议实现或访问现有服务中配置的新

设备。  

• 服务方式

面向连接(虚电路)

• 面向连接服务是电话系统服务模式的抽象,每一次完整的

数据传输都要经过建立连接、使用连接、终止连接的过

程。

• 在数据传输过程中,不携带目的地址,而使用连接号

(connect ID)。

• 本质上,连接是一个管道,收发数据不但顺序一致,而且

内容相同。TCP协议提供面向连接的虚电路。

无连接

• 无连接服务是邮政系统服务的抽象,每个分组都携带完整

的目的地址,各分组在系统中独立传送。

• 无连接服务不能保证分组的先后顺序,不进行分组出错的

恢复和重传,不保证传输的可靠性。

• UDP协议提供无连接的数据报服务。

Winsock寻址

• 计算机都分配有一个IP地址,用一个32位数来表示。

• 客户机需要通过TCP或UDP和服务器通信时,必须指定服务器的

IP地址和服务端口号。

• 服务器打算监听接入客户机请求时,也必须指定一个IP地址和一

个端口号。

编写Winsock通信程序需要那些头文件和动态连接库?

• winsock2.h ,ws2_

TCP和UDP通信使用的API函数