
项目
Duc_Duke
天行健君子以自强不息、地势坤君子以厚德载物。
展开
-
epoll源码剖析1
从epoll本质理解epoll从网卡接收数据说起1、网卡会把接收到的数据写入内存2、网卡向用户发送一个中断信号,操作系统便能得知有新数据的到来,再通过网卡中断程序去处理数据3、TCP网络编程流程服务器:int s= socket(AF_INET,SOCK_STREAM,0);//创建socketbind();//绑定端口号listen();//监听int c = accept...原创 2019-07-30 20:46:30 · 356 阅读 · 0 评论 -
epoll源码剖析2
第一步:了解一些内核方面的知识:1、等待队列waitqueue:队列头(wait_queue_head_t)往往是资源生产者, 队列成员(wait_queue_t)往往是资源消费者, 当队列头的资源就绪后, 会逐个执行每个成员指定的回调函数, 来通知它们资源已经就绪了。2、内核的poll机制 :当应用程序调用poll函数的时候,会调用到系统调用sys_poll函数,该函数最终调用do_po...原创 2019-07-31 23:47:46 · 319 阅读 · 0 评论 -
epoll源码剖析3_epoll总结
回顾epoll重要结构体所包含的成员:eventpoll:自旋锁、互斥锁、wqsys_epoll_wait()的等待队列、poll_waitfile->poll()的等待队列、rdlist 就绪文件描述符列表、rbrRB树的根节点、ovflist在ep_poll_callback()被调用时且epoll_wait() ...原创 2019-08-01 00:34:50 · 496 阅读 · 0 评论 -
C++_文件传输1_发送与接收
Linux下基于TCP的文件传输相关函数及结构体:int open(char *path,intflag,/*mode_t mode*/); open建立了一条到文件的访问路径,如果调用成功则会返回一个能够被read,write和其它系统调用的文件描述符,它不会与任何其它运行中的进程共享,flag(O_RDONLY(只读),O_WRONLY(只写),O_RDWR(读写)...原创 2019-08-08 21:16:28 · 1181 阅读 · 0 评论 -
C++_文件传输2_客户端与服务器端编程
#define UPFILE 1#define DOWNFILE 2#define COMMAND 3typedef struct Command{ long type; char text[128];}S_Command;class FileTrans{public: void SendFile(char *filename, int sockfd,...原创 2019-08-11 13:17:45 · 752 阅读 · 0 评论