首页 > 系统相关 >Linux&&网络通信

Linux&&网络通信

时间:2023-04-22 14:11:26浏览次数:47  
标签:网络通信 函数 管道 线程 && Linux 进程 close 接字

title: Linux&&网络通信

一、进程

(1)什么是进程?

进程是程序执行的过程,是linux的基本调度单位。

(2)进程和程序的区别。

程序是静态的,它是一些保存在磁盘上的指令的有序集合;

而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建、调度和消亡的过程。

(3)进程间的通信方式。

无名管道、有名管道、信号量、消息队列、信号、套接字、共享内存。

1)无名管道和有名管道的区别。

无名管道和有名管道都是半双工(固定的读端和写端)。

无名管道只能在亲缘关系的进程间通信,有名管道突破了这个限制。

(4)进程的状态转换。

(5)守护进程。

1)创建子进程,父进程退出。

​ 子进程称为孤儿进程,

2)在子进程中创建新会话。

3)改变当前目录为根目录。

4)重设文件权限掩码。

5)关闭不必要的文件描述符。

二、线程

(1)什么是线程?

线程通常叫做轻量级进程。

(2)线程间的通信方式

1)锁机制

2)信号量机制

3)信号机制

三、线程和进程的区别。

1)进程有自己的独立地址空间,线程没有;

2)进程是资源分配的最小单位,线程是CPU调度的最小单位;

3)进程和线程间的通信方式不同;

4)进程切换上下开销大,线程开销小;线程之间的切换快,但不利于资源的保护和利用。

5)一个进程挂了不会影响其他进程,而线程挂了会影响其他线程。

四、I/O模型

1、同步和异步、阻塞与非阻塞的区别

2、select、poll和epoll的区别

五、死锁及其必要条件

1)产生死锁的原因

2)预防死锁

3)银行家算法流程,怎么检测不安全状态

六、Linux命令

1)du和df

du:显示每个文件和目录的磁盘使用空间。

​ du -s -h 目录路径

​ du -h 目录路径

df:显示指定磁盘文件的可用空间。

​ df -h

七、socket编程

1、使用TCP协议的流程图

1)TCP通信的基本步骤

服务器端:socket->bind->listen->while(1){->accept->recv->send->close-}->close

客户端: socket------------------------------------>connect->send->recv----------->close

2)服务器端函数:

socket函数:生成一个套接字描述符。

bind函数:用来绑定一个端口号和IP地址,使套接字与指定的端口号和IP地址相关联。

listen函数:使服务器的这个端口和IP地址处于监听状态,等待网络中某一客户机的连接请求。如果客户端有连接请求,端口就会接受这个连接。

accept函数:接受远端计算机的连接请求,建立起与客户机的远程连接。

recv函数:用新的套接字来接收远端主机传来的数据,并把数据存到由参数buf指向的内存空间。

send函数:用新的套接字发送数据给指定的远端主机。

close函数:发送完数据后可使用close()函数,close()会让数据写回磁盘,并释放占用的资源。

3)客户端函数:

connect函数:用来请求连接远程服务器。

标签:网络通信,函数,管道,线程,&&,Linux,进程,close,接字
From: https://www.cnblogs.com/blue-Suri/p/17342982.html

相关文章

  • 最简单安装安装宝塔面板教程 linux Center os
    1.执行命令,下载并安装宝塔面板,yuminstall-ywget&&wget-Oinstall.shhttp://download.bt.cn/install/install_6.0.sh&&shinstall.sh 安装完成后会显示地址账号密码2. 直接登陆即可 ......
  • linux下为什么不能有孤儿进程
    1、基本概念我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用......
  • 04-目录---Linux编程
    第01章:Linux常用命令vim的使用:链接vimrc:链接shell命令行操作:链接hitory历史命令:链接安装较新vim:链接安装plug-vim:链接安装更新的cmake:链接安装更新的gcc:链接安装python3.8:链接第02章:Linux编译调试基础makefile:链接gdb调试:链接库的制作:链接第03章:标准IOfopen与fclos......
  • Linux驱动入门(三)Led驱动
    原文:https://dandelioncloud.cn/article/details/1454352899043295234Linux驱动入门系列Linux驱动入门(一)字符设备驱动基础Linux驱动入门(二)操作硬件Linux驱动入门(三)Led驱动Linux驱动入门(四)非阻塞方式实现按键驱动Linux驱动入门(五)阻塞方式实现按键驱动Linux驱动入门(六)poll机......
  • Linux练习题
    61.(多选题)社区发行版的特点包括A.厂商主导的开发B.采用开放开发模式C.社区开发者主导的开发D.由厂商提供支持和服务正确答案:62.(多选题)下面属于国际类别开源许可证(Internationallicenses)的是A.ApacheLicense2.0B.MulanPSLv2C.ServerSidePublicLicenseD.......
  • Linux命令
     系统基本操作:打开终端:ctrl+alt+t~:家目录,用户的工作目录,/home/linux//:根目录ls:查看目录下内容 ls:查看的是命令执行的路径下的内容 ls路径名:查看的是路径名下的内容 ls-a:查看所有文件(包括隐藏文件) 隐藏文件:文件名前面带有.符号 ls-l:查看文件的......
  • kconfig-hardened-check linux 内核安全选项检查工具
    kconfig-hardened-check是一个内核安全配置选项的检查工具,可以快速的帮助我们发现内核的一些安全配置项对于安全有比较高要求的还是值得使用的参考使用安装 python3-mvenvvenvsourcevenv/bin/activatepipinstall-Upippipinstallgit+https:......
  • 【Linux】项目自动化构建工具-make/Makefile的使用
    目录前言依赖依赖关系依赖方法使用项目清理前言......
  • 在Linux服务器上装jenkins
    官网下载jenkinshttps://www.jenkins.io/zh/download/下载的文件是jenkins.war把安装文件放到Linux中 可以直接在远程连接中上传文件,也可以使用宝塔面板上传,还可以使用Xftp上传 安装jenkinscd进入存放安装文件的目的,使用命令安装java-jarjenkins.war--httpPort=8080......
  • linux 中实现数据的每一行进行排序
     001、(base)[b20223040323@admin1test2]$lsa.txt(base)[b20223040323@admin1test2]$cata.txt##测试数目689375256882427(base)[b20223040323@admin1test2]$foriin{1..3};dosed-n"$i"pa.txt|sed's//\n/g'|......