一、系统调用和应用编程接口
大多数操作系统使用 系统调用 的机制在应用程序和操作系统之间传递控制权
只要应用进程需要从操作系统获得服务,就要把控制权传递给操作系统,操作系统在执行必要的操作后把操作权返回给应用进程
系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口
又称应用编程接口API
应用进程只要使用标准的系统调用函数就可得到操作系统的服务
TCP/IP 协议软件驻留操作系统
套接字接口:为了获得网络通信服务而与操作系统进行交互时使用的一种机制
二、几种常用的系统调用
连接建立阶段
套接字被创建后,端口号和IP地址都是空的,应用进程要调用 bind(绑定)来指明套接字的本地地址(本地端口号和本地IP地址)
服务器在调用bind后,还必须调用 listen(收听)把套接字设置为被动-方式
服务器调用 accept(接受),指明从哪一个套接字发起的连接
并发方式工作的服务器,必须同时处理多个连接
服务器中总是有一个主服务器进程和零个或多个从属服务器进程
主服务器进程:用原来的套接字接受连接请求
从属服务器:用新创建的套接字和相应的客户建立连接并可进行双向传送数据
使用TCP协议的客户调用 socket 创建套接字
客服进程调用 connect,和远地服务器建立连接(主动)
指明远地端点
客户发送请求后用recv接收回答
调用send需要的三个变量:数据发往的套接字的描述、要发送的数据的地址以及数据的长度
调用recv需要的三个变量:要使用的套接字的描述符、缓存的地址以及缓存空间的长度