网络编程实用教程第二版网络编程实用教程第二版2.1.1 问题的提出问题的提出 站在应用程序实现的角度,应用程序如何站在应用程序实现的角度,应用程序如何方便地使用协议栈软件进行通信呢?方便地使用协议栈软件进行通信呢?如果能在应用程序与协议栈软件之间提供如果能在应用程序与协议栈软件之间提供一个软件接口,就可以方便客户与服务器软件一个软件接口,就可以方便客户与服务器软件的编程。的编程。2.1 UNIX套接字网络编程接口的产生套接字网络编程接口的产生与发展与发展 套接字应用程序编程接口是网络应用程序套接字应用程序编程接口是网络应用程序通过网络协议栈进行通信时所使用的接口,即通过网络协议栈进行通信时所使用的接口,即应用程序与协议栈软件之间的接口,简称套接应用程序与协议栈软件之间的接口,简称套接字编程接口字编程接口(Socket API)。它定义了应用程序与协议栈软件进行交互它定义了应用程序与协议栈软件进行交互时可以使用的一组操作,决定了应用程序使用时可以使用的一组操作,决定了应用程序使用协议栈的方式、应用程序所能实现的功能、以协议栈的方式、应用程序所能实现的功能、以及开发具有这些功能的程序的难度