,此时要给客户端一个确认信号ACK,同时发送SYN包,此时服务器进入SYN_RECV状态 第三次握手:客户端收到服务器的发的ACK+SYN包,向服务器发送ACK,发送完毕之后,客户端和服务器进入ESTABLISHED...(SOCK_STREAM):流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的正确性和顺序性。...数据报socket(SOCK_DGRAM):数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP。...accept()函数:服务端程序调用listen()函数创建等待队列之后,调用accept()函数等待并接收客户端的连接请求。它通常从由bind()所创建的等待队列中取出第一个未处理的连接请求。...github链接:https://github.com/RiceChen/Linux-process-communication.git,记得加个star。
由于linux系统的稳定性,大部分的PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好的支持,所以对于PHP程序员来说,使用linux的功底也相当重要,接下来总结一下我从一开始在...linux下安装配置linux的心得。...linux系统安装 首先是选择linux操作系统,我使用的是Cent OS 6.7 ,它类似红帽系统,简单易接触,而且开源免费。...用过小巧的virtual box,在win7下安装要改theme主题文件,辛苦装好的环境因为未知原因(兼容问题排除后,猜测是BIOS设置的问题,可参考)打不开虚拟机而放弃后,终于选择了VM,VM下安装linux...说一下要注意的地方吧:虚拟机配置选择“桥接模式”,这样,虚拟机和主机就在同一个IP段下,可以很轻松地互相访问,VM下如图: ? 然后是我们经常要遇到的问题网络配置、和虚拟之间的交互、yum配置。
一、TCP网络开发API TCP,全称传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。...半连接队列和全连接队列: 在三次握手中,Linux kener 协议栈会维护两个队列:半连接队列和全连接队列。...在阻塞模式下,accept()函数一直等待信号,直到全连接队列中有节点才返回。 在非阻塞模式下,全连接队列为空accept()函数就返回-1,否则返回socket fd。...在listen()函数有,有一个backlog参数,这个参数表示的是全连接队列的大小还是半连接队列的大小呢?...随着TCP协议的不断迭代,backlog参数在不同的版本中代表的含义也不相同;它可以是半连接队列大小,也可以是全连接队列大小,也可以是半连接队列+全连接队列的大小总和。不过,效果不会有太大差异。
游戏开发中的网络通信设计 上节讨论了游戏引擎的选择,这次我们来讨论游戏网络通信需要考虑哪些问题。在项目最开始阶段主要需要考虑的还有网络通信模块,当然如果你做的是单机游戏就可以跳过这部分了。...这里说一下其实如果没有玩法上的限制,能用短链接来实现就尽量用短链接来实现,因为短链接无论是对服务器还是对客户端,短连接对消息的处理会简单很多,而且最重要的是占用的系统资源相对于长连接来说非常少。...而且假如一个逻辑服务器长连接时可以同时保持4000个连接,也就是支持4000人同时在线,但是如果改成短链接的话,这个逻辑服务器可能会支持10000+人同时在线,当然,前提是不影响游戏功能的情况下。...这里有一片文章介绍TCP和UDP怎么选择和设计的比较不错,大家可以参考一下:UDP vs....TCP:https://gafferongames.com/post/udp_vs_tcp/ 我们再说一下上文提到的用socket来模拟短连接这点。
首先复习一下Kubernetes内的对象类型 Node:运行kubelet(古代叫minion)的计算机 Pod:最小调度单位,包含一个pause容器、至少一个运行应用的容器 RC:复本控制器,用于保持同类...Pod的并行运行的数量 Svc:暴露服务的可访问通信接口 对象之间的通信关系 客户端 服务器 访问方式 master kubelet Node的10250/TCP端口。...不提供pod之间通信的功能,需要装额外的软件来配合。...run/flannel/docker ,故 flannel 必须在 docker 之前启动,如果在docker已经运行的情况下启动flannel,则docker也必须重启才能生效。。...,后者的NetworkMode和IpcMode的值为前者的Id。
大家好,又见面了,我是你们的朋友全栈君。 1....Linux zip命令 压缩 zip -r filename.zip ./* // 将当前目录下的所有文件和文件夹全部压缩成 filename.zip文件 -r表示递归压缩子目录下所有文件...Linux tar命令 -c: 建立压缩档案 -x: 解压 -t: 查看内容 -j: 通过bzip2的支持进行压缩/解压,此时文件最好为*.tar.bz2 -z: 通过gzip的支持进行压缩/解压,此时文件最好为...Linux rar命令 要在Linux下处理.rar文件,需要安装RAR for Linux yum install rar 压缩 rar a filename * //将所有的文件压缩成一个rar...包,名为filename.rar 解压 unrar e filename.rar test // 将filename.rar中的所有文件解压到.
综合 select 和 poll 的一些优缺点,Linux 从内核 2.6 版本开始引入了更高效的 epoll 模型,本节我们来详细介绍 epoll 模型。...必须先需要创建一个 epollfd,这需要使用 epoll_create 函数去创建: #include int epoll_create(int size); 参数 size 从 Linux...当然,这并不意味着,poll 函数的效率不如 epoll_wait,一般在 fd 数量比较多,但某段时间内,就绪事件 fd 数量较少的情况下,epoll_wait 才会体现出它的优势,也就是说 socket...那么水平模式的触发条件是状态处于高电平,而边缘模式是状态改为高电平,即: 水平模式的触发条件 1. 低电平 => 高电平 2. 高电平 => 高电平 边缘模式的触发条件 1....边缘模式下收取数据的代码示例如下: bool TcpSession::RecvEtMode() { //每次只收取256个字节 char buff[256]; while (true
FILE... stat接受一个或者多个输入的FILE,和一系列的选项,用来控制命令的行为和输出结果。...安全内容 Access - 文件最后被访问的时间 Modify - 文件内容最后被修改的时间 Change - 文件属性或者内容最后被修改的时间 Birth - 文件创建时间(Linux 下不支持)...显示关于文件系统的信息 为了获取文件归属的文件系统相关信息,而不是获取文件本身的信息,我们使用-f,(--file-system)选项: stat -f file.txt 这个命令的输出看起来是这样:...用户的可用剩余块数 Inodes: Total - 文件系统上的总节点数 Free - 文件系统上的剩余节点数 间接(跟进)软连接 默认情况下,stat 不会跟进软连接。...总结 stat命令打印了文件和文件系统的信息。 在 Linux 下,还有其他几个命令可以显示文件信息。ls就是最有用的一个,但是它只显示stat信息中的一部分。
下面是我的配置信息: set shortmess=atI syntax enable syntax on set ai set nu set ruler set autoindent set nocompatible... if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif "删除行末的空格
本文讲述 Linux pgrep命令的基础知识。 pgrep是一个命令行工具,它允许你基于给定条件来查找正在运行的程序的进程 ID。它可以是进程名字的全称或者一部分,进程运行者,或者其他属性。...这个pgrep命令是procps(或者procps-ng)软件包的一部分,它基本上在所有的 Linux 发行版上都预装了。...如果没有发现匹配的,输出将是空的: 1039 2257 6850 31279 当至少有一个进程匹配了所给的名字时,这个命令返回0.否则,返回退出错误码1。这在 shell 脚本中很有用处。...如果你想发送信号给匹配的进程,使用pkill。这个命令是pkill的封装,并且使用了同样的选项和匹配样式。 pgrep会在每一行打印一个匹配的进程。-d选项允许你指定一个分隔符。...2257 ssh-agent 6850 ssh 31279 ssh-agent 如果你想严格按照搜索样式准确匹配进程,你需要使用: pgrep '^ssh$' -l 输出: 6850 ssh 默认情况下,
一、简介 free命令是最经常使用的命令之一,用于查看内存使用情况。 free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。...输出简介 Mem 行(第二行)是内存的使用情况。...Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显示已经被使用的物理内存和交换空间。...shared 列显示被共享使用的物理内存大小。 buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。 available 列显示还可以被应用程序使用的物理内存大小。...请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差 周期性查看怎么办? 使用 free -s 10 ,这里的 10 代表间隔10秒查看 ``
本文最先发布在: https://www.itcoder.tech/posts/modprobe-command-in-linux/ Linux kernel 是 Linux 操作系统的核心部分。...它管理着系统资源,并且它是你的计算机软硬件之间的桥梁。 Linux kernel 有一个模块化设计。一个 kernel 模块,通常被称为 驱动程序,是用来扩展内核功能的一段代码。...在这篇文章中,我们将会讲解如何使用modprobe来从 Linux 内核中 添加或者移除模块。modprobe是kmod的一部分,它是用来管理 Linux 内核模块的多个程序的封装二进制包。...,在新的一行指定模块,或者创建一个新的.conf文件。...三、总结 modprobe命令可以允许你添加或者移除 Linux 内核模块。
highlight Comment ctermfg=lightblue guifg=darkblue
我们有时在Windows编辑的文件,放到了Linux环境中,打开文件,可能发现每行结尾多了一个“^M”,导致一些在Windows下能执行的解析程序,放到了Linux中,执行就会报错,问题就出在这个"^M...在Linux中vim是无法显示\r,因为ascii中对应的不是Linux中的标准acsii字符,其实其对应的ASCII码十进制形式是13(无显示形式),对应的八进制形式是15(显示为^M)。...对这个问题的解决可能有很多种, 1. 在Windows下使用文本工具进行转换win-->linux,例如notepad++、UltraEdit直接进行转换。 2....在Linux下,可以用dos2unix file,将文件转换格式。 3. 在Linux下,可以用cat file | tr -d "\r" > new_file,进行替换。 4....在Linux下,可以用sed 's/^M//old_file > new_file,进行替换。
内容如下: /var/lib/jenkins/:默认的JENKINS_HOME。...jenkins”,把java路径加上: 开机启动 chkconfig jenkins on 4.密码忘记 修改 JENKINS_HOME/users/user.conf user.conf 就是忘记密码对应的用户...针对 yum install jenkins 安装的Jenkins,它的HOME目录位于 /var/lib/jenkins/ 下面 修改 #jbcrypt:$2a$10$QqzUz7kc8U8wkc5vexlxnuw5umudQj7A....0NmuZPrGMaq3qaV5m7hi 为 #jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS 后者是111111的hash
1.首先要查看一下CentOS的版本: cat /etc/redhat-release 我们安装最好用root用户来安装,避免一些问题发生。...如果已安装这些程序,请卸载它们以及相关的依赖项。...\ lvm2 6.使用以下命令来设置稳定的存储库 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux...命令行运行docker命令的时候,需要本机有 Docker 服务。...用下面的命令启动 systemctl start docker 10.安装完成后,运行下面的命令,验证是否安装成功 docker version 或者 docker info 补充一下1.如果想设置开机自启可以
/configure make make install 查看Python的版本 python –V 查看Python执行文件位置 which python 之前的Python不用卸载,新装的Python...与之不会冲突,比如安装完成之后,会有一个python2.5即是我们安装的最新版本Python。
文件权限 执行ll命令可以看到相对应文件和文件夹的描述: -rw-r--r--表示这个文件的权限, 数字1表示对应的硬链数量, root表示所属用户,第二个root表示所属组, 0...-rw-r--r-- 符号 描述 -/d/l 开头的-表示这是一个文件,开头的d表示这个是一个目录,l表示这是一个软件链接 rw- 表示所有者对于这个文件的权限 r-- 表示所属组对于这个文件的权限 r...linux下用..../是相同的作用)。只要存在权限都可以执行该文件。 需要注意的是./hello是需要文件的x权限的,而sh hello是不需要可执行权限的。...复制代码 chgrp [组名] [文件名] 修改文件为该组下所属, 修改文件所属组权限。 默认权限 umask umask命令表示查看默认权限。
step7:安装,将redis的命令安装到/usr/local/bin/⽬录 sudo make install step8:安装完成后,我们进入目录/usr/local/bin中查看
这个值是对正在运行或者等待磁盘 I/O 操作的任务数目的一个考量。它基本上是告诉你过去的一段时间,系统有多忙?...第二行包括以下信息: USER - 登录用户名 TTY - 登录用户使用的终端名称 FROM - 来自登录用户的主机名或者 IP LOGIN@ - 用户登录时间 IDLE - 从用户上次和终端交互到现在的时间...,即空闲时间 JCPU - 依附于 tty 的所有进程的使用时间 PCPU - 用户当前进程的使用时间。...当前进程名称显示在 WHAT WHAT - 用户当前进程和选项、参数 这个命令然后列出所有登录用户,以及他们的相关信息。 如果把一个或者多个用户名作为参数传递给w,输出将会仅仅提供这些用户的信息。...默认这一列是否展示出来,都依赖于你所使用的 Linux 发行版。
领取专属 10元无门槛券
手把手带您无忧上云