【网络编程】第2章(2) 应用程序接口(API)

简介: 【网络编程】第2章(2) 应用程序接口(API)

前面那章介绍了客户-服务器的原理,下面就介绍客户-服务器编程的实现原理,之后要我们自己手动编代码来完成客户-服务器的通信过程


应用程序接口(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使套接字处于被动状态

accept

从请求队列取请求,返回新套接字描述符,也就是句柄

retcode = accept( socket, addr, addrlen )

套接字I/O操

retcode = recvfrom(socket, buffer, buflen, flags, from, fromlen)

套接字的接收,和读文件类似

返回值: 非0 所读字节数,-1 失败

retcode = sendto(socket, msg, msglen, flags, to, tolen)

套接字的发送,和写文件类似

  • 返回值: 非0 所写字节数,-1 失败

Close

retcode = close ( socket )

shutdown

retcode = shutdown ( socket , how)

how的取值及含义

说明
0 shut_RD 不允许本地socket进行读
1 shut_WR 不允许本地socket进行写
2 shut_RDWR 不允许本地socket进行读写


练习

1.简述系统调用以及系统调用与一般调用的差别

一般调用,往往是在用户态,一个函数调用另一个函数,或一个过程调用另一个过程,开销很小。

系统调用,是用户态的程序调用操作系统的内核服务,开销大,因为往往内核上下文环境进行来回切换

2.描述基于数据报套接字的C/S通信过程

基于UDP的C/S通信过程更简单

客户端创建socket后,就能直接调用sentto()原语发送报文,不管连接与否和发送到与否,然后接收的话就直接调用recvfrom()原语来接收报文

服务器创建socket后,同样先进行绑定bind(),和客户端类似,不断的接收报文recvfrom()后,进行sentto()的报文发送,不断的轮询



相关文章
|
7天前
|
JSON 搜索推荐 API
Lazada Item_review API接口的开发应用与收益
Lazada作为东南亚领先的电商平台,通过其丰富的API接口为第三方开发者提供了强大的工具。其中,Lazada商品评论列表API(item_review API)尤为重要,能够实时获取商品评论数据,帮助开发者了解用户反馈、优化商品策略、提高购物体验和建立品牌形象,从而在电商行业中实现显著的收益。本文将深入探讨该API的开发应用及其多方面的价值。
42 14
|
6天前
|
搜索推荐 数据挖掘 API
Suning商品详情API接口的开发应用与收益
在电商迅猛发展的时代,API接口技术成为连接不同系统的桥梁,为电商平台提供高效的数据交换能力。苏宁易购的商品详情API接口,为商家和开发者带来诸多便利和收益,包括商品信息获取、选品上架、竞品分析、个性化推荐、自动化管理和运营效率提升等方面,助力商家优化销售策略,提高用户体验,降低运营成本,增强市场竞争力,促进业务创新。
35 2
|
2天前
|
存储 搜索推荐 安全
介绍几个常用的电商API接口及其应用场景。(一篇文章全清楚)
电商API接口是电商平台高效运营的核心技术支撑,涵盖商品管理、订单管理、支付、客户管理、营销推广和数据分析六大模块。商品管理API实现商品信息的精准上传与动态调整;订单管理API确保订单全流程透明可控;支付API保障交易安全便捷;客户管理API通过数据分析提供个性化服务;营销推广API助力精准营销;数据分析API为决策提供数据支持。各API协同工作,推动电商行业创新发展,构建智能便捷的电商生态。
34 12
|
2天前
|
监控 供应链 搜索推荐
阿里妈妈商品详情API接口:开发、应用与收益的深度剖析
阿里妈妈是阿里巴巴旗下的数字营销平台,其商品详情API接口为开发者提供了获取淘宝、天猫等电商平台商品详细信息的工具。本文介绍了该接口的开发流程、应用场景及带来的收益,揭示了其在电商生态中的重要地位。
22 6
|
3天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
25 6
|
3天前
|
机器学习/深度学习 人工智能 监控
API超越应用的时代,深入了解F5 API安全解决方案
API超越应用的时代,深入了解F5 API安全解决方案
16 3
|
5天前
|
供应链 搜索推荐 API
Walgreens商品详情API接口的开发应用与收益
在数字化时代,API成为连接不同系统和服务的桥梁。Walgreens通过开放其商品详情API接口,为开发者提供了丰富的数据源,支持商品搜索、个性化推荐、价格比较、库存管理等应用,创造了新的商业机会和收益模式。本文将深入探讨Walgreens商品详情API接口的开发应用及其多重收益。
27 5
|
5天前
|
监控 搜索推荐 API
京东商品详情API接口的开发、应用与收益探索
在数字化和互联网高速发展的时代,京东通过开放商品详情API接口,为开发者、企业和商家提供了丰富的数据源和创新空间。本文将探讨该API接口的开发背景、流程、应用场景及带来的多重收益,包括促进生态系统建设、提升数据利用效率和推动数字化转型等。
18 3
|
1天前
|
JSON API 数据安全/隐私保护
淘宝商品详情API接口系列以及应用场景
淘宝商品详情API接口系列是淘宝开放平台提供的一系列编程接口,允许第三方开发者通过特定的协议和方式,与淘宝平台进行数据交互。这些接口涵盖了商品搜索、商品详情获取、订单管理、物流查询、支付结算等多个方面,为开发者提供了极大的灵活性和便利性。以下是对淘宝商品详情API接口系列的详细介绍
|
8天前
|
搜索推荐 数据挖掘 API
拼多多根据ID取商品详情原数据API接口的开发应用与收益
拼多多作为中国知名电商平台,为开发者和企业提供丰富的API接口,助力快速接入平台,实现商品推广、订单管理等功能。其中,根据ID取商品详情原数据的API接口尤为重要,具备高效性、稳定性和安全性,广泛应用于电商数据分析、价格监测、竞品分析、商品推荐系统、移动应用开发及精准营销等领域,为企业带来显著收益。
24 0
下一篇
DataWorks