计算机网络套接字编程概述

插座技术的基础知识

套接字技术
安德鲁伯顿/盖蒂图像

套接字是计算机网络编程最基本的技术之一。套接字允许网络软件应用程序使用内置于网络硬件和操作系统中的标准机制进行通信。

虽然这听起来像是互联网软件开发的另一个特点,但套接字技术在网络出现之前就已经存在了。许多流行的网络软件应用程序都依赖于套接字。

什么套接字技术可以为您的网络做些什么

套接字表示两个软件之间的单一连接(点对点连接)。两个以上的软件可以与客户端/服务器或使用多个套接字的分布式系统。例如,许多web浏览器可以使用服务器上的一组套接字与单个web服务器同时通信。

基于套接字的软件通常在网络上的两台独立计算机上运行,但套接字也可用于在一台计算机上进行本地通信(进程间)。套接字是双向的,这意味着连接的任意一侧都能够发送和接收数据。

有时,发起通信的应用程序被称为客户机,而另一个应用程序被称为服务器,但这个术语会导致混淆点对点通常应避免使用网络和网络。

套接字API和库

几个工艺标准的库应用程序编程界面(API)存在于internet上。第一个主流软件包Berkeley Socket库在UNIX系统上广泛使用。

另一个常见的API是用于Microsoft操作系统的Windows套接字(WinSock)库。相对于其他计算机技术,socket API是成熟的。WinSock自1993年开始使用,Berkeley sockets自1982年开始使用。

套接字API相对较小且简单。许多函数与文件输入/输出例程中使用的函数类似,如read()write()、和close()。要使用的实际函数调用取决于所选的编程语言和套接字库。

套接字接口类型

套接字接口可分为三类:

  • 溪流插座:这是最常见的类型。通信双方首先建立一个套接字连接,之后通过该连接传递的任何数据都保证以发送的相同顺序到达(使用面向连接的编程模型)。
  • 数据报套接字:提供无连接的语义。使用数据报,Connections是隐式而不是与流显式。任何一方都根据需要发送数据报,等待另一方进行响应。消息可以丢失传输或收到无序;应用程序处理这些问题,而不是套接字。与使用流套接字相比,实现数据报套接字可以提供一些应用程序的性能提升和额外的灵活性。
  • 原始插座:绕过库对标准协议的内置支持,例如TCP.UDP.。原始套接字用于自定义低级协议开发。

网络协议中的套接字支持

现代网络套接字通常与IP,TCP和UDP Internet协议结合使用。实现Internet协议套接字的库使用TCP进行流,用于数据报的UDP,以及原始套接字的IP。

要通过互联网进行沟通,IP套接字库使用IP地址识别特定的计算机。internet的许多部分都使用命名服务,因此用户和套接字程序员可以按名称(例如thiscomputer.wireless.lifewire.com)而不是按地址(例如208.185.127.40)使用计算机。乐动体育赞助

流和数据报套接字也使用IP端口号区分多个应用程序彼此。例如,互联网上的Web浏览器知道使用端口80作为与Web服务器套接字通信的默认值。

此页面有用吗?