Linux Socket 编程简介和实现
在 TCP/IP 协议中,"IP地址 + TCP或UDP端口号" 可以唯一标识网络通讯中的一个进程,"IP地址+端口号" 就称为 socket。本文以一个简单的 TCP 协议为例,介绍如何创建基于 TCP 协议的网络程序。TCP 协议通讯流程下图描述了 TCP 协议的通讯流程(此图来自互联网):下图则描述 TCP 建立连接的过程(此图来自互联网...
2024-01-10【linux】centos7 的问题
linux小白,弱弱的请教一下。。配置nodejs环境变量完了以后卡在这了输入什么按键光标都没反应,求助。。。回答一看就是用 vim 进去改的文件, Esc 然后输入 :wq! ,保存退出。如何退出viesc:wq...
2024-01-10Linux进程间通信方式之socket使用实例
套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发工作既可以在本地单机上进行,也可以跨网络进行。套接字的特性有三个属性确定,它们是:域(domain),类型(type),和协议(protocol)。套接字还用地址作为它的名字。地址的格式随域(又被称为协议族,protocol family)的不同而不同...
2024-01-10学习linux(centos7)记录的笔记
此随笔用于记录学习《linux鸟哥的私房菜》过程中1.遇到的问题及解决的过程 2.有必要记录的重要内容 3.对应书上操作的记录开始于2021年6月18号一个磁盘的分区通过格式化后成为一个文件系统,将文件系统挂载至目录后方可使用过程可分为: 1.分区2.格式化3.挂载(4.设置开机启动挂载) 使用fdisk新增一...
2024-01-10Linux下如何查杀stopped进程详解
前言在Linux系统下面,top命令可以查看查看stopped进程。但是不能查看stopped进程的详细信息。那么如何查看stopped 进程,并且杀掉这些stopped进程呢? ps -e j | grep T stopped进程的STAT状态为T,一般而言,进程有下面这些状态码: D uninterruptible sleep (usually IO) ...
2024-01-10linux系统使用vscode进行qt开发的过程分享
目录1.安装Qtcrater2.打开Qtcrater创建新项目3.使用vscode打开项目从一头雾水到模模糊糊,不明原理,暂时记录一下1.安装Qtcratersudo pacman -S qtcreater2.打开Qtcrater创建新项目其中build system 选择cmake创建好之后如下:这里我的项目名称为qt_window3.使用vscode打开项目进入根目录,找到项目名称命名的文件夹,...
2024-01-10linux环境下的Oracle部署教程
一、 环境及相关软件虚拟机:VMwore WorkstationLinux系统:CentOSORACLE:ORACLE_112030_Linux-x86-64Xmanger软件二、 安装虚拟机及Linux系统1. 安装虚拟机2. 安装Centos2.1 新建虚拟机2.2 下一步,选择后续装操作系统2.3 选择操作系统,选择linux,版本选择centos 64位2.4 虚拟机命名及文件位置选择2.6 选择硬盘大...
2024-01-10linux中把.c的文件编译成.so文件
linux中共享库以so为后缀(shared object),与Windows下的DLL类似,是在程序运行时动态连接。多个进程可以连接同一个共享库。以下以编译mylib.c为例讲如何编译.so文件。首先,编译mylib.c:$gcc -c -fPIC -o mylib.o mylib.c-c表示只编译(compile),而不连接。-o选项用于说明输出(output)文件名。gcc将生成一个目标(object)文...
2024-01-10Linux系统编程 —读写锁rgwock
读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状...
2024-01-10Linux系统编程 —读写锁rgwock
读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性为:写独占,读共享;写锁优先级高。对于读写锁,掌握了这12个字就足矣了。Linux环境下,读写锁具有以下三种状...
2024-01-10Linux下快速手动产生core文件
原文链接:https://blog.csdn.net/jctian000/article/details/79695006 当我们配置好自动生成core文件的环境后,若不想写导致崩溃的程序验证,那要怎么快速产生core呢?先看下产生core文件的条件:当程序接收到以下UNIX信号会产生core文件: 在系统默认动作列,“终止w/core”表示在进程当前工作目录的core文件中复...
2024-01-10linux C编程: volatile和全局变量?
共有1.c、2.c、3.c三个文件.定义int i=1;尝试输出++i + ++i1.c当中变量i是main函数的局部变量2.c当中:变量i被volatile修饰3.c当中:变量i是全局变量对于1.c,gcc编译器给出答案6,clang给出5.对于2.c和3.c,gcc编译器给出答案5.也就是说,对gcc编译器,volatile和全局变量某种程度上效果一致。这是为什么呢?回答Volatile 的...
2024-01-10Linux安装Cockkut监控服务
CentOS/RHEL 8的新特性之一就是自带了一个cockpit的监控服务。通过c/s架构模式运行,客户端输入ip:端口即可访问这类似于glances监控。如果你不是使用的centos/rhel8也是可以使用的,无非要自己安装而已 ...
2024-01-10linux C编程: volatile和全局变量?
共有1.c、2.c、3.c三个文件.定义int i=1;尝试输出++i + ++i1.c当中变量i是main函数的局部变量2.c当中:变量i被volatile修饰3.c当中:变量i是全局变量对于1.c,gcc编译器给出答案6,clang给出5.对于2.c和3.c,gcc编译器给出答案5.也就是说,对gcc编译器,volatile和全局变量某种程度上效果一致。这是为什么呢?回答:Volatile ...
2024-01-10Linux系统编程 —堆区之fsync
共享内存概念共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备。但是它没有自带同步机制,需要配合信号量等方式来进行同步。共享内存被创建以后,同一块物理内存被映射到了多个进程地址空间,当有一个进程修改了共享内存的数据,其余的进程均可看见所...
2024-01-10Linux下Docker及portainer相关配置方法
一、安装使用Docer CE本文以CentOS 7为例,安装docker CE版本,docker有两种版本,社区版本CE和企业版本EE,此处学习研究以CE版本为例,两种安装方式可选:1、使用yum安装,2、使用脚本自动安装系统要求Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内...
2024-01-10Linux内核TCP/IP、Socket参数调优
/proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失),例如下面这些重要的参数:参数(路径+文件)描述默认值优化值/proc/sys/net/core/rmem_default默认的TCP数据接收窗口大小(字节)。229376256960/proc/sys/n...
2024-01-10Linux系统编程 —套接字量mutex
互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。互斥量的具体实现方式为:每个线程在对共享资源操作前都尝试先加锁,成功加锁...
2024-01-10Linux系统编程 —套接字量mutex
互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。互斥量的具体实现方式为:每个线程在对共享资源操作前都尝试先加锁,成功加锁...
2024-01-10Linux下远程连接Jupyter+pyspark部署教程
博主最近试在服务器上进行spark编程,因此,在开始编程作业之前,要先搭建一个便利的编程环境,这样才能做到舒心地开发。本文主要有以下内容:1、python多版本管理利器-pythonbrew 2、Jupyter notebooks 安装与使用以及远程连接方法 3、Jupyter连接pyspark,实现web端sprak开发一、python多版本管理利器-pythonbre...
2024-01-10Linux下Select多路复用实现简易聊天室示例
目录前言多路复用的原理基本概念selectfd_set服务器Code客户端Code效果演示select服务器客户端Ⅰ客户端Ⅱ前言和之前的udp聊天室有异曲同工之处,这次我们客户端send的是一个封装好了的数据包,recv的是一个字符串,服务器recv的是一个数据包,send的是一个字符串,在用户连接的时候发送一个login请求,然...
2024-01-10【原创】linux设备模型之kset/kobj/ktype分析
背 景Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明:Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio1. 概述今天来聊一下Linux设备模型的基石:kset/kobject/ktype。sysfs文件系统提供了一种用户与内核数据结构进行交互的方式,可以通过mount -...
2024-01-10linux下通过xinetd服务管理 rsync 实现开机自启动
1.1 xinetd服务配置1.1.1 检查xinetd服务是否安装[root@backup ~]# rpm -qa xinetd[root@backup ~]# rpm -ql xinetdpackage xinetd is not installed1.1.2 安装xinetd服务[root@backup ~]# yum install xinetd -y[root@backup ~]# rpm -qa xinetdxinetd-2.3.14-40.el6.x86_641.2 修改/etc/xinetd...
2024-01-10【原创】Linux中断子系统(三)softirq和tasklet
背景Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明:Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio1. 概述中断子系统中有一个重要的设计机制,那就是Top-half和Bottom-half,将紧急的工作放置在Top-half中来处理,而将耗时的工作放置在Bottom-h...
2024-01-10《linux编程实践教程》中的两个习题, 有关fork的
然后结果为:==================================不太理解为何父进程已经把文件关了,而子进程依旧可以写入。而且fork()创建的子进程不是应该执行fork之后的代码吗,为何题2又可以把第一句话写入回答:首先要理解fork的一个特性: 父进程的所有打开文件描述符都会被复制到子进程中,父、子进程的每个...
2024-01-10