
网络编程
Ideal Dragon
没有什么好运气,只能一直保持努力。
展开
-
Linux的socket缓冲区
Linux的soket缓冲区每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。TCP协议独立于 write()/s...原创 2019-11-18 22:14:32 · 1542 阅读 · 0 评论 -
poll机制源码深入剖析
poll机制源码深入剖析文章目录poll机制源码深入剖析poll调用方法poll实现原理poll源码实现应用程序调用poll函数do_sys_poll复制用户区数据构建监听结构链表-->调用do_poll-->数据返回do_poll遍历链表对每个调用do_pollfd-->睡眠-->有事件或者超时-->返回do_pollfd找到文件结构-->调用文件驱动的po...原创 2019-11-16 17:57:03 · 560 阅读 · 1 评论 -
epoll机制源码分析
epoll机制源码分析文章目录epoll机制源码分析epoll 调用方法epoll实现原理源码分析关键结构思考题epoll 调用方法// 调用epoll_create建立一个epoll对象(在epoll文件系统中给这个句柄分配资源);//参数:监听的最大fd数目 返回值:epollfdint epoll_create(int size); //添加、删除、更改操作//参数:ep...原创 2019-11-16 17:55:41 · 382 阅读 · 0 评论 -
多线程锁的分析
多线程锁的分析首先我们知道锁主要有两种,悲观锁和乐观锁。对于悲观锁(mutex,spin_lock),它永远会假定最糟糕的情况,就像我们上面说到的互斥机制,每次我们都假定会有其他的线程和我们竞争资源,因此必须要先拿到锁,之后才放心的进行我们的操作,这就使得争夺锁成为了我们每次操作的第一步。乐观锁(CAS,原子操作)则不同,乐观锁假定在很多情况下,资源都不需要竞争,因此可以直接进行读写,但是如果碰...原创 2019-11-16 17:52:15 · 466 阅读 · 0 评论 -
【转】代理服务器
小编在公司的技术分享中多次听到正向代理和反向代理,对于Ngnix这一实现反向代理的服务器,是如何工作的呢?下面咱们就一起了解一下。正文什么是代理服务器(Proxy Serve)? 提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去取得网络信息。为什么使用代理服务器?提高访问速度 &n...转载 2019-06-16 21:35:36 · 549 阅读 · 0 评论 -
TCP三次握手,四次挥手问题总结
TCP三次握手,四次挥手问题总结文章目录TCP三次握手,四次挥手问题总结TCP三次握手,四次挥手解释TCP协议基础TCP服务模型TCP头部状态转换为什么要“三次握手,四次挥手”三次握手四次挥手扩展可以了解的知识:TCP三次握手,四次挥手解释SYN 包:建立连接请求的包FIN 包:切断TCP 连接的包ACK 包:针对SYN 包和FIN 包的确认应答包1、TCP 的特点及其目的:(1)...原创 2019-06-25 20:49:25 · 1242 阅读 · 0 评论 -
多进程与多线程
https://blog.youkuaiyun.com/lishenglong666/article/details/8557215鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。 经常在网络上看到有...转载 2019-08-30 19:55:16 · 373 阅读 · 0 评论