前面那章介绍了客户-服务器的原理,下面就介绍客户-服务器编程的实现原理,之后要我们自己手动编代码来完成客户-服务器的通信过程
应用程序接口(API)
操作系统定义了应用程序和协议软件(TCP/IP)之间的接口——应用程序接口
我们要做的就是通过程序调用操作系统的应用程序接口,然后通过它而调用协议软件(TCP/IP)的接口来实现 络之间通信,也就是 络编程
应用程序接口要实现的功能:
- 分配用于通信的本地资源;
- 指定本地和远程通信端点;
- (客户端)发起连接;
- (客户端)发送数据 ;
- (服务器端)等待连接的到来;
- 发送或接收数据;
- 判断数据何时到达;
- 产生紧急数据;
- 处理到来的紧急数据;
- 从容终止连接;
- 处理来自远程端点的连接终止;
- 异常终止通信;
- 处理错误条件或连接异常终止;
- 连接结束后释放本地资源;
络通信的两种基本方法
设计者发明一种新的系统调用
设计者使用一般的I/O调用访问TCP/IP
套接字API
套接字就是Socket,接收所有需要通信参数后,调用系统调用的API,然后调用协议软件来进行 络通信,它本身封装了很多的方法,能够实现很多的通信中的功能
套接字API的实现提供了套接字系统调用所要使用的符 常量和数据结构声明
创建套接字
retcode =socket( family, type, protocol )
-
返回值:成功 0,失败 -1 errno 记录错误代码
-
Family:协议族
-
Type:流式套接字TCP或者数据 套接字UDP
-
protocol :具体的协议
连接请求 connect
retcode = connect( socket, addr, addrlen)
-
返回值:成功 0,失败 -1
-
socket:创建的套接字
-
addr:请求连接的地址
-
addrlen:地址长度
绑定本地地址 bind
recode= bind( socket, localaddr, addrlen )
监听 listen
retcode = listen( socket, queuelen )
服务器使用listen使套接字处于被动状态
如何写得不错就点个赞吧,欢迎来我的个人博客 站??www.liangyuanshao.top
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8793 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!