Winsock - 1 - Winsock API

Winsock

Winsock API

Winsock是网络编程接口,而不是协议。编程

网络原理和协议

创建Winsock规范的主要目的是提供一个与协议无关的传送接口。api

Winsock将网络编程接口与具体协议解耦缓存

协议的特征

  • 面向消息
  • 面向链接和无链接
  • 可靠性和次序性
  • 从容关闭
  • 广播数据
  • 多播数据
  • 服务质量
  • 部分消息
  • 路由选择
面向消息

对每一个离散写命令来讲,若是传送协议把它们(并且只有它们)当作一条独立的消息在网上传送,咱们就说该协议是面向消息。网络

面向消息:传送协议以独立的消息单元在网络上传输数据函数

第一次读取调用不会将这全部的三个数据包都返回,即便这些数据包已经收到也如此。这称为“保护消息边界”(preserving message boundaries)接口

多个消息间存在保护消息边界,每次读取不能返回多个消息。进程

无保护消息边界的协议一般称做“基于流的协议”资源

对发送端来讲,意味着容许系统将原始消息分解成小消息或把
几条消息积累在一块儿,造成一个较大的数据包。对接收端来讲,则是数据一到达网络堆栈,网络堆栈就开始读取它,并将它缓存下来等候进程处理。在进程请求处理大量数据时,系统会在不溢出为客户请求提供的缓冲区这一前提下,尽可能返回更多的数据路由

基于流的协议不按照消息区分接收到的数据同步

面向链接和无链接

面向链接的服务中,进行数据交换以前,必须与通讯方创建一条路径

这样既肯定了通讯方之间存在路由,又保证了通讯双方都是活动的、均可彼此响应,但其特色是在通讯双方之间创建一个通讯信道需
要不少开支

而无链接协议却不保证接收端是否正在收听

面向链接一方面要保证链路存在,二要肯定对方是活动的,可彼此响应,至关于创建了一个通讯约定

广播数据

广播数据即数据从一个工做站发出,局域网内的其余全部工做站都能收到它。

这一特征适用于无链接协议,由于LAN上的全部机器均可得到并处理广播消息。

使用广播消息的不利之处是每台机器都必须对该消息进行处理。好比,一用户在LAN上广播一条消息,每台机器上的网卡都会收到这条消息,并把它上传到网络堆栈。而后,堆栈将这条消息在全部的网络应用中循环,看它们是否应该接收这条消息。

  • 广播是针对局域网中全部设备;
  • 广播适用于无链接协议;
多播数据

I P协议下,多播是广播的一种变形。

I P多播要求对收发数据感兴趣的全部主机加入一个特定的组。进程但愿加入多播组时,网卡上会增添一个过滤器,这样,只有绑定组地址的数据才会被网络硬件捡起,并上传到网络堆栈进行恰当处理。

  • 多播是针对特定的组成员

Winsock支持的协议

Wi n 3 2平台提供的最有用的特征之一是可以同步支持多种不一样的网络协议。

  • IP
  • IPX/SPX
  • NetBIOS
  • AppleTalk
  • ATM
  • 红外线套接字

Winsock2协议信息

  • 如何获取系统中安装的网络协议信息?
    WSAEnumProtocols

    要想得到系统中安装的网络协议的相关信息,调用这个函数W S A E n u m P r o t o c o l s便可

  • 如何加载Winsock库?

    在能够调用一个Wi n s o c k函数以前,必须先加载一个版本正确的Wi n s o c k库。Winsock启动例程是W S A S t a r t u p

    在结束Wi n s o c k库,并且再也不须要调用任何Wi n s o c k函数时,附带例程会卸载这个库, 并释放资源。这个函数的定义是: int WSACleanup (void); 记住,每次调用W S A S t a r t u p,都须要调用相应的W S A C l e a n u p,由于每次启动调用都 会增长对加载Winsock DLL的引用次数,它要求调用一样屡次的W S A C l e a n u p,以此抵消 引用次数。

相关文章
相关标签/搜索