
Windows网络编程案例教程的套接字摘要
套接字屏蔽了从应用程序直接访问传输层的复杂性。在日常生活中两个人打电话,那个电话机就可以理解为是通话的接口,只要会用电话机,甭管电话间是如何复杂连接的,通话随时随地可以轻松完成。套接字就像那个电话机,编程者只要掌握了套接字技术(类似电话机的使用方法),那么网络编程(就像打电话)工作就非常简单了。至于套接字与下层的关系,则由操作系统来实现和封装,因此,套接字简化网络编程。
对多数操作系统而言,应用程序和操作系统程序是在不同的保护模式下运行的。应用程序一般不能直接访问操作系统内部的资源,这样可以避免应用程序非法破坏操作系统的运行。为此,操作系统需要提供应用程序编程接口(Application Programming Interface,API)给应用程序,使其能够利用操作系统提供的服务。对于网络操作系统,需要为网络应用程序提供网络编程接口实现网络通信。目前多数操作系统提供了套接字(Socket)接口作为网络编程接口。
Berkeley套接字(BSD套接字)是4.2 BSD Unix操作系统(于1983发布)提供的一套应用程序编程接口,是一个用C语言写成的网络应用程序开发库,主要用于实现网间进程通信。Berkeley套接字后来成为其它现代操作系统参照的事实工业标准。Windows操作系统在后来的BSD4.3版基础上实现了自己的Windows Socket(又称WinSock)套接字编程接口。