网络
文章平均质量分 92
侠客行-
这个作者很懒,什么都没留下…
展开
-
HTTP协议总结
概念 超文本传输协议http协议定义了浏览器如何向万维网服务器请求万维网文档,以及怎样把文档传送给浏览器。从层次来讲,HTTP是面向事务的应用层协议是www和浏览器交换文件的重要基础操作过程 服务器端建立套接字(socket),命名套接字(bind)(sockfd>sin_port=htons(80)),创建监听队列(listen)之后等待浏览器发送HTTP请求报文,一旦监听到连接建...原创 2018-04-10 12:47:46 · 1065 阅读 · 0 评论 -
IO复用之select
seletc,poll和epoll都是io复用复用的接口。I/O复用解决什么问题?I/O复用就是通过一种方法可以同时监听多个描述符的状态,一旦有描述符就绪就通过相应的接口返回通知用户程序进行相应的读写操作。同时你或许注意到它们都是同步的I/O监听。原因在于它们在外部读写事件就绪后自己负责控制读写,进一步说便是在此过程是堵塞的,有数据才读,没数据就等待。然而异步的Io就不需要自己就行读写的控制...原创 2018-04-19 23:52:42 · 313 阅读 · 0 评论 -
IO调用之poll
为了解决select的监听描述符最大值(1024个)的限制问题,和事件和描述符分开的问题,引入了poll。poll将描述符和要注册的事件和实际发生的事件进行封装pollfd函数原型: #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout);pollfd就是封装体。struct...原创 2018-04-20 01:35:19 · 316 阅读 · 0 评论 -
epoll (effictive poll)高效率的poll
epoll与poll和select在使用过程中有很大区别,(1)epoll使用一组函数来来完成任务。它们分别是epoll_create(),epoll_clt和epoll_wait(),(2)再有epoll使用事件表来记录用户关心的描述符上的事件,由此不需要像select和poll一样把描述符集合(fd_set)和事件集(pollfd)在每次调用都要传入内核中,但是epoll需要额外维护一个内核时...原创 2018-04-20 15:47:05 · 467 阅读 · 0 评论 -
select,poll,epoll对比
(1)在使用数据集合上,select将数据集分为读集,写集,和异常集poll对select进行了封装,将事件和描述符绑定在结构体中pollfd中epoll在poll将描述符和事件封装的基础上,将事件集做了进一步的抽象--》epoll内核事件表,事件表将用户关系的描述符放入表中(2)在对于事件和描述符的处理上,select和poll每次监听结束后,都要将就绪的描述符更新到对应的数组中,最麻烦在于它们...原创 2018-04-20 16:54:22 · 129 阅读 · 0 评论 -
一些基本问题:大小端,网络字节序,socket编程函数的注意点,gdb和coredump调试
1,什么是大小端?大小端是指数据在内存的的存放顺序,现代计算机一次能够加载32bit或者64bit的数据或者指令,因而数据的存放顺序影响它被装载到整数的值。以小端来讲:低地址存数据的低位,高地址存数据的高;而大端敲好反过来:高地址存低位,地址存高位。2.测试大小端测试大小端最常用的方法是使用一个联合体,定义成员为一个short和char然后给short类型变量赋值为1,看char变量是否也是1,如...原创 2018-06-14 12:28:08 · 981 阅读 · 0 评论