应用进程跨越网络的通信

目录

1 系统调用和应用编程接口

应用编程接口 API

几种应用编程接口 API

套接字的作用

几种常用的系统调用

1. 连接建立阶段

2. 传送阶段

 3. 连接释放阶段


1 系统调用和应用编程接口

·大多数操作系统使用系统调用 (system call ) 的机制在应用程序和操作系统之间传递控制权。

·对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。

多个应用进程使用系统调用的机制

应用编程接口 API

·系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。

·使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口 API (Application Programming Interface) 。

几种应用编程接口 API

·Berkeley UNIX 操作系统定义了一种 API,它又称为套接字接口 (socket interface)。

·微软公司在其操作系统中采用了套接字接口  API,形成了一个稍有不同的 API,并称之为  Windows Socket

·AT&T 为其 UNIX 系统 V 定义了一种 API,简写为 TLI (Transport Layer Interface)。

应用进程通过套接字接入到网络

套接字的作用

·当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建套接字,以便把网络通信所需要的系统资源分配给该应用进程。

·操作系统为这些资源的总和用一个套接字描述符的号码来表示。

·应用进程所进行的网络操作都必须使用这个套接字描述符。

·通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该套接字描述符相关的所有资源。

几种常用的系统调用

1. 连接建立阶段

·当套接字被创建后,它的端口号和 IP 地址都是空的,因此应用进程要调用 bind(绑定)来指明套接字的本地地址。在服务器端调用 bind 时就是把熟知端口号和本地IP地址填写到已创建的套接字中。这就叫做把本地地址绑定到套接字。

·服务器在调用 bind 后,还必须调用 listen(收听)把套接字设置为被动方式,以便随时接受客户的服务请求。UDP 服务器由于只提供无连接服务,不使用 listen 系统调用。

·服务器紧接着就调用 accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用 accept 的一个变量就是要指明从哪一个套接字发起的连接。

并发方式工作的服务器

调用 accept 要完成的动作较多。这是因为一个服务器必须能够同时处理多个连接。这样的服务器常称为并发方式 (concurrent) 工作的服务器。

2. 传送阶段

·客户和服务器都在 TCP 连接上使用 send 系统调用传送数据,使用 recv 系统调用接收数据。

·通常客户使用 send 发送请求,而服务器使用 send 发送回答。

·服务器使用 recv 接收客户用 send 调用发送的请求。客户在发完请求后用 recv 接收回答。

 3. 连接释放阶段

·一旦客户或服务器结束使用套接字,就把套接字撤消。这时就调用 close 释放连接和撤销套接字。

欢迎一起学习~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/386663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kafka 之生产者(Producer)

目录 一. 前言 二. 生产消息 三. 幂等和事务 四. send() 发送消息 五. 原理解析 一. 前言 Kafka生产者是一个应用程序,它负责向 Kafka 主题发送消息。这些消息可以用于多种目的,如记录用户活动、收集物联网设备数据、保存日志消息或缓存即将写入数据…

66万个 全国行政区划代码表

66万个全国各级行政区划代码表 提供的数据一览 简介 一共有66万个全国各级行政区划,一共有5个级别的行政单位级别 表格头部数据 表格尾部数据 全国行政单位各省份数量统计 数据下载地址 数据整理不易 百度云盘 链接: https://pan.baidu.com/s/1o1C2piYj2wu…

C#,数值计算,矩阵的行列式(Determinant)、伴随矩阵(Adjoint)与逆矩阵(Inverse)的算法与源代码

本文发布矩阵(Matrix)的一些初级算法。 一、矩阵的行列式(Determinant) 矩阵行列式是指矩阵的全部元素构成的行列式,设A(a)是数域P上的一个n阶矩阵,则所有A(a)中的元素组成的行列式称为矩阵A的行列式&…

仰暮计划|“​他们艰苦半生,但真的希望祖国安祥,山河无恙”

自述,自赎 我没有在那个年代生活过,我一出生就是盛世中国,看遍了祖国的大好河山。但我没想到,走了这么远的路,吃了这么多的苦的爷爷会一直跟我说“不是国家不好,只是中国的钱拿去还债了,过了那…

Linux释放内存

free -m是Linux上查看内存的指令,其中-m是以兆(MB)为单位,如果不加则以KB为单位。 如下图表示,(total)总物理内存是809MB,(used)已使用167MB,&…

零基础学Python(10)— 序列通用操作

前言:Hello大家好,我是小哥谈。本节课就带大家认识下Python语言中常见的序列通用操作!~🌈 目录 🚀1.索引 🚀2.切片 🚀3.序列加法 🚀4.序列乘法 🚀5.检查某个元素是…

Python:Pygame游戏编程简述

Python是一种广泛使用的编程语言,它简洁、易懂并且功能强大。在Python的世界中,有许多库和模块可供选择,其中之一就是Pygame。Pygame是一个Python库,用于开发2D游戏,它提供了许多工具和函数,使得游戏开发变…

【2024年毕设系列】如何使用Anaconda和Pycharm

【2024年毕设系列】如何使用Anaconda和Pycharm 视频教程地址:【2024毕设系列】Anaconda和Pycharm如何使用_哔哩哔哩 Hi,各位好久不见,这里是肆十二,首先在这里给大伙拜年了。 诸位过完年之后估计又要开始为了大作业和毕业设计头疼…

移动机器人激光SLAM导航(五):Cartographer SLAM 篇

参考 Cartographer 官方文档Cartographer 从入门到精通 1. Cartographer 安装 1.1 前置条件 推荐在刚装好的 Ubuntu 16.04 或 Ubuntu 18.04 上进行编译ROS 安装:ROS学习1:ROS概述与环境搭建 1.2 依赖库安装 资源下载完解压并执行以下指令 https://pa…

CSRNET图像修复,DNN

CSRNET图像修复 CSRNET图像修复,只需要OPENCV的DNN

【安装指南】图床神器之Picgo下载、安装详细教程

🌼一、概述 PicGo是一款开源的图片上传、管理工具,旨在帮助用户快速上传图片到云存储或图床,并提供链接方便在网页或其他应用中使用。它支持各种常见的图床服务商,如GitHub、七牛云、腾讯云等,并提供了简洁易用的界面和…

Vscode 在汇编文件中添加调试断点

Vscode 在汇编文件中添加调试断点 vscode默认不支持汇编文件添加断点, 可以在设置里面打开

软件实例分享,超市便利店进销存管理系统收银软件教程

软件实例分享,超市便利店进销存管理系统收银软件教程 一、前言 以下软件教程以 佳易王超市进销存管理软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 软件程序导航,系统设置:有管理员账号设置其他账…

前端工程化之:webpack3-5(css module)

目录 一、css module 1.思路 2.实现原理 3.如何应用样式 4.其他操作 (1)全局类名 (2)如何控制最终的类名 5.其他注意事项 一、css module 通过命名规范来限制类名太过死板,而 css in js 虽然足够灵活&…

Windows上Miniconda的安装:一步步教你从零开始

🚀Windows上Miniconda的安装:一步步教你从零开始🚀 🌵文章目录🌵 🌳引言🌳🌳二、Miniconda简介:开启您的数据科学之旅的得力助手! 🌳&#x1f333…

神经网络:卷积神经网络中的BatchNorm

一、BN介绍 1.原理 在机器学习中让输入的数据之间相关性越少越好,最好输入的每个样本都是均值为0方差为1。在输入神经网络之前可以对数据进行处理让数据消除共线性,但是这样的话输入层的激活层看到的是一个分布良好的数据,但是较深的激活层…

Java 集合

一、集合的框架体系(重要,背!!!) 1.Collection(单列集合) 2.Map(双列集合) 二、Collection接口 1.特点 使用了Collection接口的子类 可以存放多个元素&am…

C语言学习day12:for循环

前面学了dowhile循环&#xff0c;今天我们来学习经常用到的for循环&#xff1a; for循环&#xff1a; 例子&#xff1a; int main() {//int i;for (int i 0; i < 10;i) {printf("%d\n",i);};system("pause");return EXIT_SUCCESS; } 解释&#xff…

高中数学:不等式

一、性质 1、同向可加性 2、同向同正可乘 3、正数乘方开方&#xff08;n∈Z&#xff0c;n≥2&#xff09; 常见题型 1、比较大小 分式比较大小&#xff0c;先去分母作差法比较大小带根号的无理数比较大小&#xff0c;直接两边开方因式分解&#xff08;较难&#xff09; 2、…