首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Linux网络编程
订阅
空不想说话
更多收藏集
微信扫码分享
微信
新浪微博
QQ
14篇文章 · 0订阅
linux网络编程系列(九)--优雅关闭以及如何检测对端已经关闭
1. 什么是优雅关闭 子进程将数据写入套接字后close,并退出,服务端接收完数据,直到检测到EOF,也关闭连接,并退出,接着父进程读取完服务端响应的数据,也退出,但如果子进程使用close的话,并不会发生4次挥手的过程,只是引用计数减1,服务端是接收不到EOF的,这时就需要使…
linux网络编程系列(五)--errno以及网络编程使用场景
1. linux下定义的errno 为防止和正常的返回值混淆,系统调用并不直接返回错误码,而是将错误码放入一个名为errno的全局变量中。如果一个系统调用失败,你可以读出errno的值来确定问题所在。 errno不同数值所代表的错误消息定义在errno.h中,你也可以通过命令"…
linux网络编程系列(七)--tcp粘包及如何解决
1. 什么是粘包 熟悉TCP协议的人都应该知道,TCP发送数据,并不是应用程序send以后就发出去了,它是先存储在发送缓冲区的,为了性能考虑,可能会等到多个数据包汇总到一起后,操作系统底层再把缓冲区整体发送出去,接收数据也是一样。 在网络传输中,有个MTU-最大传输单元,是15…
linux网络编程系列(三)--tcp和udp的基本函数调用过程及如何选择
1. socket编程 TCP是TCP/IP体系中面向连接的传输层协议,它提供全双工和可靠交付的服务。它采用许多机制来确保端到端结点之间的可靠数据传输,如采用序列号、确认重传、滑动窗口等。 首先,TCP要为所发送的每一个报文段加上序列号,保证每一个报文段能被接收方接收,并只被正…
linux网络编程系列(二)--套接口、ip、端口号相关
1. 网络相关概念 套接口,也叫“套接字”。是操作系统内核中的一个数据结构,它是网络中的节点进行相互通信的门户。网络通信,归根到底还是进程间的通信(不同计算机上的进程间通信)。在网络中,每一个节点(计算机或路由)都有一个网络地址,也就是IP地址。两个进程通信时,首先要确定各自所…
linux网络编程系列(一)--OSI七层模型和TCP-IP四层模型
1. ISO七层网络模型 为使不同计算机厂家之间的计算机能够互相通信,以便在更大的范围内建立计算机网络,国际标准化组织ISO在1981年正式推出了一个网络系统结构--OSI七层网络模型,此后各大计算机厂商迅速向它靠拢,大大推动了计算机网络的发展。 OSI七层网络模型分别是:应用…
linux网络编程系列(十二)--滑动窗口、拥塞控制、断线重连机制
1. 滑动窗口 所谓窗口其实就是表示一段存放在发送缓冲区中的、可以被发送者发送的字节序列,它连续的一个范围,我们就称为窗口。而滑动则是随着数据不断的被发送,那么窗口就会在缓冲区中向前移动。 流量控制方面主要有两个要点需要掌握。一是TCP利用滑动窗口实现流量控制的机制;二是如何考…
linux网络编程系列(十一)--select基本使用以及它和epoll区别
1. select函数 复用IO还有一种就是select模型,我们下面就来简单介绍一下select用法。 readfds 指针指向文件描述符集合,如果描述符中有一个文件可读, select就返回一个大于0的值(准备就绪的描述符数量), 表示有文件可读。没有文件可读时则判断是否超…
linux网络编程系列(十)--epoll的基本使用
1. 网络编程中的四种IO模型 2. epoll函数 完全靠内核驱动,只要某个文件描述符有变化,就会一直通知我们的应用程序,直到处理完毕为止。 此种情况下,当文件描述符有变化时,epoll只会通知应用程序一次,并将描述符从监视队列中清除,直到应用程序处理完该次变化,如果应用程序…
或许这样能帮你了解 OSI 七层模型
hello~亲爱的观众老爷们大家好!惯例先说说为何写这个主题,缘起于其次后端同事的一次抓包分享。当然咯,当时对于网络编程的术语各种不明觉厉,只能尴尬地笑着。对于最基础的 OSI模型,只知道由七层组成,但每一层是什么,有什么用途,有什么协议完全是不清楚的。因而知耻而后,通过看书与…