Linux Socket 编程简介和实现
在 TCP/IP 协议中,"IP地址 + TCP或UDP端口号" 可以唯一标识网络通讯中的一个进程,"IP地址+端口号" 就称为 socket。本文以一个简单的 TCP 协议为例,介绍如何创建基于 TCP 协议的网络程序。TCP 协议通讯流程下图描述了 TCP 协议的通讯流程(此图来自互联网):下图则描述 TCP 建立连接的过程(此图来自互联网...
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环境下的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-10centos克隆linux虚拟机的完整步骤分享
前言当一个Linux完全设置完成以后,就可以使用克隆的方式来在短时间内创建出多个Linux来;本文将给大家详细介绍关于centos克隆linux虚拟机的相关内容,下面话不多说了,来一起看看详细的介绍吧步骤如下1)克隆一个新的虚拟机2)在终端命令窗口中输入[root@hadoop105 /]#vim /etc/udev/rules.d/70-persistent-n...
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上的flock vs lockf
如果lockf以0偏移量使用,则在排他模式下使用时flock和lockf使用时有什么区别?我之所以问是因为我正在阅读基于平台有条件地在这两个函数中的任何一个中编译的代码,所以我想了解原因。回答:flock()和之间的实际区别在于lockf()语义(关于关闭和传递的行为),在NFS和其他共享文件系统上的适用性...
2024-01-10详解vscode实现远程linux服务器上Python开发
最近需要训练一个生成对抗网络模型,然后开发接口,不得不在一台有显卡的远程linux服务器上进行,所以,趁着这个机会研究了下怎么使用vscode来进行远程开发。(1)在windows系统命令行下运行命令:ssh-keygen, 一路回车,将会在C:\Users\用户名.ssh目录下生成两个文件:id_rsa和id_rsa.pub。 前者是私钥,...
2024-01-10Linux Bash Heredoc
当编写shell脚本,你可能在一个情况下,你需要将文本或代码的传递给交互式命令,如tee,cat或sftp。在Bash和Zsh等其他shell中,Heredoc是一种重定向类型,它允许您将多行输入传递给命令。编写HereDoc的语法采用以下形式:[COMMAND] <<[-] 'DELIMITER' HERE-DOCUMENTDELIMITER第一行以可选命令开头,后跟特殊重定向操...
2024-01-10Linux部署rocketmq和可视化客户端
镜像下载、域名解析、时间同步请点击 阿里云开源镜像站部署rocketmq和可视化客户端一、 服务器资源服务名称:Linux服务器IP:[请查看资源分配文档]操作系统:CentOS 7.8 x64二、rocketmq安装2.1下载下载地址:rocketmq.apache.org/dowloading/…这里,咋们下载4.8.0版本2.2、将压缩包放到 tools目录下并解压把...
2024-01-10Linux下快速手动产生core文件
原文链接:https://blog.csdn.net/jctian000/article/details/79695006 当我们配置好自动生成core文件的环境后,若不想写导致崩溃的程序验证,那要怎么快速产生core呢?先看下产生core文件的条件:当程序接收到以下UNIX信号会产生core文件: 在系统默认动作列,“终止w/core”表示在进程当前工作目录的core文件中复...
2024-01-10【linux】centos下rpm命令无法使用,提示数据库损坏
状况如图所示:网上的方法基本都试了,rpm修复神马的,rpm -v --rebuilddb等等均不行。回答rpm的数据库挂了。你上次升级没有成功又强行退出了?你可以删除旧数据库,然后重建数据库:删除旧数据库:rm /var/lib/rpm/__db*重建数据库:yum --rebuilddb...
2024-01-10linux中Centos7的LVM磁盘扩容问题
系统提示我容量不足 就利用LVM的方式进行扩容吧。系统是RHEL7(centos7差不多一样)先查看磁盘信息及根目录fdisk -l注意:sda为硬盘,需要扩容的是系统的根目录,这里RHEL的系统根目录为/dev/mapper/rhel-root(系统不一样,根目录也不一样)关闭系统,在vmware—>设置—>硬盘—>扩展—>输入数字大于当前...
2024-01-10Linux系统编程 —堆区之fsync
共享内存概念共享内存是通信效率最高的IPC方式,因为进程可以直接读写内存,而无需进行数据的拷备。但是它没有自带同步机制,需要配合信号量等方式来进行同步。共享内存被创建以后,同一块物理内存被映射到了多个进程地址空间,当有一个进程修改了共享内存的数据,其余的进程均可看见所...
2024-01-10linux下用户程序同内核通信详解(netlink机制)
简介linux下用户程序同内核通信的方式一般有ioctl, proc文件系统,剩下一个就是Netlink套接字了。 这里先介绍下netlink。Netlink 是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的 socket API 就可以使用 netlink 提供的强大功能,内核态需要使用专门的内核 API 来使用 netlink...
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下Select多路复用实现简易聊天室示例
目录前言多路复用的原理基本概念selectfd_set服务器Code客户端Code效果演示select服务器客户端Ⅰ客户端Ⅱ前言和之前的udp聊天室有异曲同工之处,这次我们客户端send的是一个封装好了的数据包,recv的是一个字符串,服务器recv的是一个数据包,send的是一个字符串,在用户连接的时候发送一个login请求,然...
2024-01-10【linux】使用codeblocks添加了一个以存在的工程,为什么无法编译?
我使用的是已经存在工程自带的makefile,然后就会现实如图信息,请问怎么解决?回答No rule to make target 'Debug'你执行的是命令 make -f sdkcrack/Makefile Debug吧写的很清楚哦,Debug Make参数不支持...
2024-01-10Linux Mach-O反汇编程序
是否有任何Linux程序可以反汇编OSX通用x86 / x86_64胖Mach-O二进制文件,如objdump?GNUbinutils的objdump支持ELF和Windows PE文件,但不支持Mach-O。回答:AFAIK,本地的Darwin二进制工具是cctools软件包的一部分。它们没有与GNUbinutils相同的命令行语法或输出。但是后来的binutils(即2.22)支持Mach-O格式。你可以得到这...
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系统奔溃之vmcore:kdump的亲密战友crash
crash 是目前广泛使用的 linux 内核崩溃转储文件的分析工具,掌握 crash 的使用技巧,对于分析定位内核崩溃的问题,有着非常重要的作用。本文首先介绍了 crash 的基本概念和安装方法,其次详细介绍了如何使用 crash 工具分析内核崩溃转储文件,包括各种常用调试命令的使用方法,最后以几个实际工作...
2024-01-10