08 2021 档案

摘要:逐步构建HTTP服务器(四)——设计并使用缓冲 设计缓冲 设计缓冲的目的:解决不能一次read和write全部数据、未及时将套接字接受缓冲区读出造成的反复触发读事件就绪(busy-loop)。 Linux多线程服务端编程 7.4.2 为什么non-blocking 网络编程中应用层buffer是必需 阅读全文
posted @ 2021-08-16 22:58 ithepug 阅读(114) 评论(0) 推荐(0)
摘要:逐步构建HTTP服务器(三)——IO多路复用+非阻塞IO 为什么使用非阻塞? 在(一)中提到我们目前的使用的都是阻塞的socket。 考虑套接字发送缓冲区已满,write阻塞,而此时又有接受缓冲区可供读取。引入非阻塞IO,可避免进程在可做任何有效工作期间发生阻塞。 在man select 中提到使用 阅读全文
posted @ 2021-08-08 21:35 ithepug 阅读(120) 评论(0) 推荐(0)
摘要:逐步构建HTTP服务器(二)——初识IO多路复用 上篇构建了一个简单的TCP服务器,基本结构: socket(); // 获取一个阻塞 'TCP套接字' bind(); // 'TCP套接字' 绑定地址 listen(); // 'TCP套接字' 监听 whlie(1) { accept(); // 阅读全文
posted @ 2021-08-08 21:35 ithepug 阅读(145) 评论(0) 推荐(0)
摘要:HTTP | MDN (https://developer.mozilla.org/zh-CN/docs/Web/HTTP) 我们知道HTTP依赖于面向连接的TCP进行消息传递。所以我们实际上是要构建一个能够接受TCP连接并通过TCP发送HTTP报文给用户浏览器的服务器。 如何构建一个TCP服务器? 阅读全文
posted @ 2021-08-02 11:43 ithepug 阅读(152) 评论(0) 推荐(0)