什么是winsocket编程接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是winsocket编程接口相关的知识,希望对你有一定的参考价值。

Windows下网络编程的规范-Windows
Sockets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成为Windows网络编程的事实上的标准。
Windows
Sockets规范以U.C.
Berkeley大学BSD
UNIX中流行的Socket接口为范例定义了一套Micosoft
Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley
Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。Windows
Sockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows
Sockets也定义了一个二进制接口(ABI),以此来保证应用Windows
Sockets
API的应用程序能够在任何网络软件供应商的符合Windows
Sockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。遵守这套Windows
Sockets规范的网络软件,我们称之为Windows
Sockets兼容的,而Windows
Sockets兼容实现的提供者,我们称之为Windows
Sockets提供者。一个网络软件供应商必须百分之百地实现Windows
Sockets规范才能做到现Windows
Sockets兼容。任何能够与Windows
Sockets兼容实现协同工作的应用程序就被认为是具有Windows
Sockets接口。我们称这种应用程序为Windows
Sockets应用程序。Windows
Sockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows
Sockets实现都支持流套接口和数据报套接口.应用程序调用Windows
Sockets的API实现相互之间的通讯。Windows
Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图
通信的基础是套接口(Socket),一个套接口是通讯的一端。在这一端上你可以找到与其对应的一个名字。一个正在被使用的套接口都有它的类型和与其相关的进程。套接口存在于通讯域中。通讯域是为了处理一般的线程通过套接口通讯而引进的一种抽象概念。套接口通常和同一个域中的套接口交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。Windows
Sockets规范支持单一的通讯域,即Internet域。各种进程使用这个域互相之间用Internet协议族来进行通讯(Windows
Sockets
1.1以上的版本支持其他的域,例如Windows
Sockets
2)。套接口可以根据通讯性质分类;这种性质对于用户是可见的。应用程序一般仅在同一类的套接口间通讯。不过只要底层的通讯协议允许,不同类型的套接口间也照样可以通讯。用户目前可以使用两种套接口,即流套接口和数据报套接口。流套接口提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。也就是说,一个从数据报套接口接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。数据报套接口的一个重要特点是它保留了记录边界。对于这一特点,数据报套接口采用了与现在许多包交换网络(例如以太网)非常类似的模型。
一个在建立分布式应用时最常用的范例便是客户机/服务器模型。在这种方案中客户应用程序向服务器程序请求服务。这种方式隐含了在建立客户机/服务器间通讯时的非对称性。客户机/服务器模型工作时要求有一套为客户机和服务器所共识的惯例来保证服务能够被提供(或被接受)。这一套惯例包含了一套协议。它必须在通讯的两头都被实现。根据不同的实际情况,协议可能是对称的或是非对称的。在对称的协议中,每一方都有可能扮演主从角色;在非对称协议中,一方被不可改变地
参考技术A 用户在windows中编写网络通信程序时,需要用到windows  sockets(windows套接字),与windows套接字有关的api函数称为winsock函数。mfc类库中几乎封装了windows sockets的全部功能。 参考技术B 就是用来编写类似qq软件的windows接口
主要用于Windows平台

以上是关于什么是winsocket编程接口的主要内容,如果未能解决你的问题,请参考以下文章

winSockets编程socket函数

winsocket udp和tcp编程,缓冲区应该设置多大?

网络编程socket套接字及其使用

Socket网络编程

Winsocket编程之域名解析

windows下的socket网络编程(入门级)