![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
J-网络编程
文章平均质量分 62
GDB_er
这个作者很懒,什么都没留下…
展开
-
《网络编程》之——Linux高性能服务器开发小项目的分析记录
Linux高性能服务器开发小项目分析记录参考书籍:《Linux高性能服务器编程》游双基础班:Mywebserver,就是书上的服务器项目进阶版:Tinywebserver目录PartⅠ:mywebserver一、locker.h,locker.cpp (与Tiny相同)互斥锁类locker条件变量类cond信号量类sem二、threadpool.h 线程池创建多个线程将线程设为脱离请求队列(工作队列)工作线程们运行的函数只实现了Proactor模式三、main.cpp网络编程常规步骤循环获取就绪.原创 2021-05-30 23:44:23 · 397 阅读 · 0 评论 -
《网络编程》之——服务器编程框架理解
Reactor模式、Proactor模式,半同步/半异步模式,半同步/半反应堆模式,领导者/追随者模式原创 2021-05-29 22:26:33 · 269 阅读 · 0 评论 -
《网络编程》之——epoll的底层实现原理
从两位大佬的文章中整理而来陈同学: https://mp.weixin.qq.com/s/ioxKBfJeAThgDHFWps8ucw小林coding: https://mp.weixin.qq.com/s/ioxKBfJeAThgDHFWps8ucwepoll_creat:epoll_ctl:向内核事件表中注册事件,会将事件与设备驱动程序简历回调关系ep_poll_callback(),相应事件发生时,会调用这个回调方法,该回调方法会将事件添加到rdllist双链表中。epoll_wai.原创 2021-04-17 13:37:40 · 308 阅读 · 0 评论 -
《网络编程》之——socket的底层实现原理
借鉴大佬 小林coding 的一篇文章整理而来:https://mp.weixin.qq.com/s/Qpa0qXxuIM8jrBqDaXmVNA下图的三个主要内容:首先是进程的很重要的一个结构体task_struct从中可以知道文件描述符从何而来然后针对socket这种文件描述符,它的底层是如何实现的附:小林coding文章中的sk_buff的讲解图,可以帮忙理解sk_buff的原理...原创 2021-04-17 13:31:47 · 1393 阅读 · 0 评论 -
《网络编程》之——select、poll的底层实现原理
参考博客https://my.oschina.net/fileoptions/blog/911091https://mp.weixin.qq.com/s/ioxKBfJeAThgDHFWps8ucw先记录一下源码借鉴了优秀博主的源码#undef __NFDBITS#define __NFDBITS (8 * sizeof(unsigned long))#undef __FD_SETSIZE#define __FD_SETSIZE 1024#undef __FDSET_L.原创 2021-03-20 17:36:51 · 686 阅读 · 0 评论 -
《网络编程》之——epoll的LT和ET模式
参考书目:《Linux高性能服务器编程》-游双著LT:电平触发ET:边沿触发将一个事件的发生理解为状态的转变,理解为从0到1的转变。例如:EPOLLIN读就绪事件的发生条件:内核接收缓存区中的字节数 >= 低水位标记SO_RCVLOWAT。故将(内核接收缓存区中的字节数 < 低水位标记SO_RCVLOWAT)视为0将(内核接收缓存区中的字节数 >= 低水位标记SO_RCVLOWAT)视为1则,LT的触发方式为:只要处于1就触发,ET的触发方式为:0-1的一.原创 2021-01-23 17:37:27 · 269 阅读 · 0 评论 -
《网络编程》之——accept:叫它“接受”合适吗?它“接受”了什么?
accept——取出从监听队列取出:队列,顾名思义就是FIFO的方式我认为accept叫做取出更合适一点:从listen监听队列中取出一个连接accept不影响三次挥手连接的过程,也不关心监听队列中连接的状态,不管是ESTABLISHED还是SYN_RECV还是CLOSE_WAIT,它就只管取accept函数的用法见博客socket基础API。accept默认是阻塞的,当listen监听队列中没有连接时,accept将会等待,直到监听队列中有连接可以取出。(socket基础API中可能被阻塞的包原创 2021-01-23 17:29:54 · 294 阅读 · 0 评论 -
《网络编程》之——socket基础API
socket地址API首先要了解:大端字节序(网络字节序)小端字节序(主机字节序)(发送端总要把数据转化成大端字节序数据后再发送)四个函数完成网络字节序<->主机字节序之间的转换#include<netinet/in.h>//长整型通常用来转换IP地址unsigned long int htonl( usigned long int hostlong );// host to network long , 下面的类似unsigned long int ntohl原创 2021-01-23 16:20:08 · 129 阅读 · 1 评论