首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 网络通信(TCPIP)《Rice linux 学习开发》

,此时要给客户端一个确认信号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。

47620

网络通信神奇之旅:解密Linux TCP网络协议栈工作原理

一、TCP网络开发API TCP,全称传输控制协议(Transmission Control Protocol),是一种面向连接、可靠、基于字节流传输层通信协议。...半连接队列和全连接队列: 在三次握手中,Linux kener 协议栈会维护两个队列:半连接队列和全连接队列。...在阻塞模式,accept()函数一直等待信号,直到全连接队列中有节点才返回。 在非阻塞模式,全连接队列为空accept()函数就返回-1,否则返回socket fd。...在listen()函数有,有一个backlog参数,这个参数表示是全连接队列大小还是半连接队列大小呢?...随着TCP协议不断迭代,backlog参数在不同版本中代表含义也不相同;它可以是半连接队列大小,也可以是全连接队列大小,也可以是半连接队列+全连接队列大小总和。不过,效果不会有太大差异。

14910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LINUXPHP

    由于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配置。

    3.7K80

    网络通信基础重难点解析 12 :Linux epoll 模型

    综合 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

    1.5K31

    游戏开发中网络通信

    游戏开发中网络通信设计 上节讨论了游戏引擎选择,这次我们来讨论游戏网络通信需要考虑哪些问题。在项目最开始阶段主要需要考虑还有网络通信模块,当然如果你做是单机游戏就可以跳过这部分了。...这里说一其实如果没有玩法上限制,能用短链接来实现就尽量用短链接来实现,因为短链接无论是对服务器还是对客户端,短连接对消息处理会简单很多,而且最重要是占用系统资源相对于长连接来说非常少。...而且假如一个逻辑服务器长连接时可以同时保持4000个连接,也就是支持4000人同时在线,但是如果改成短链接的话,这个逻辑服务器可能会支持10000+人同时在线,当然,前提是不影响游戏功能情况。...这里有一片文章介绍TCP和UDP怎么选择和设计比较不错,大家可以参考一:UDP vs....TCP:https://gafferongames.com/post/udp_vs_tcp/ 我们再说一上文提到用socket来模拟短连接这点。

    1.8K40

    Linux基本指令

    前言: 可涵开始Linux新篇章旅行啦,本文主要介绍Linux基本指令~ 引言: 何为LinuxLinux是一种免费使用和自由传播类UNIX操作系统。 那什么是操作系统呢?...——工具 我们下面开始学习Linux指令~ 首先我们需要明确,我们现在学习指令操作和图形化界面没有任何区别。...补充知识:Linux目录结构认识 . 表示当前路径 ..表示上级路径 注意任何一个目录下都有.文件和..文件,用于指向自己和上级目录,根节点..也表示指向自己。 所以cd .....注意Linux路径分隔符是反斜杠 /  windows路径分隔符是正斜杠 \ 路径分隔符之间一定是一个目录/文件夹 为什么要有路径?...,表示指定路径所有文件!

    10510

    Linux字体管理

    输出当前已安装所有字体 ➜ ~ fc-list /usr/share/fonts/noto/NotoSansTaiLe-Regular.ttf: Noto Sans Tai Le:style=Regular...过滤输出当前已安装字体(也可以通过grep方式) ➜ ~ fc-list Ubuntu /usr/share/fonts/TTF/Ubuntu-RI.ttf: Ubuntu:style=Italic...最后,在命令行执行fc-cache命令,更新字体cache文件。 通过以上步骤,新字体就已经安装好了。 如果是通过对话框来修改字体软件,在打开切换字体对话框时,应该就可以看到这个新字体了。...如果是通过配置文件来修改字体软件,则可以在配置文件中通过指定 family style size 等信息来修改字体。 4....其他命令 linux字体管理还有一些其他命令,大都以 fc- 开头,有兴趣可以自己研究

    5.8K50

    LinuxSIGCHLD信号

    对于父子进程来说,父进程可以通过wait或这waitpid函数来释放子进程资源,也可以通过waitpid获得子进程退出状态。那么这个实现过程是通过阻塞等待,或者不断轮询。...那么这两个操作对于父进程来说都不是理想,因此可以通过SIGCHLD信号来实现异步操作。...也就是当子进程结束时候通过SIGCHLD信号告诉父进程,然后父进程再去释放其资源,如果没有收到该信号也不影响父进程运行。        ...,就可以捕捉到子进程信号了。...还有需要注意是因为SIGCHLD不能叠加,所以如果多个子进程结束了也只有一个SIGCHLD,那么对于这种情况我们在捕捉函数中使用循环来处理多个子进程结束情况,下面就直接看代码吧: #include

    4.6K10

    LinuxMySQL安装

    下载 1.选择合适yum源 在Linux学习阶段我们已经得知,在Linux环境要安装应用程序必须要通过yum来进行,所以这里首先给出MySQLyum源,进入该页面后可以看到有各种各样版本MySQL...1.为了安装最适合我们操作系统MySQL,所以我们需要通过cat /etc/redhat-release指令来查看我们Linux版本 2.可以看到上述yum源中无法查看到MySQL版本详细信息...,所以我们可以在页面右击鼠标查看页面源代码来获取更详细版本信息(以el为后缀就是适配于centos) 2.将yum源上传到Linux服务器中 选择好合适yum源以后将其下载下来(我是centos7.9...Windows和Linux之间互传文件,如果你没有下载就使用yum install -y lrzsz安装一即可(使用rz可以将Windows中文件传到Linux中,使用sz则是将Linux文件传到windows...当你输入完整命令后,按下回车键,会提示输入密码,输入正确密码后,就可以连接到 MySQL 数据库了 此时可以使用show databases查看一数据库 如果不想使用了,输入quit

    33340
    领券