
网络
文章平均质量分 91
小占同学_
这个作者很懒,什么都没留下…
展开
-
socket网络编程——原理(详细阐述)
Posix API(socket编程)原理详解原创 2024-09-07 19:18:30 · 1356 阅读 · 0 评论 -
用基于epoll的reactor网络模型实现websocket
上次用reactor实现了webserver,这次来实现WebSocket什么是 WebSocket 呢?WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。WebSocket 通过 HTTP 端口 80 和 443 进行工作,并支持 HTTP 代理和中介,从而使其与 HTTP 协议兼容。原创 2024-08-26 16:13:02 · 1007 阅读 · 0 评论 -
HTTP基础知识详解
◼HTTP (Hyper Text Transfer Protocol),译为超文本传输协议◻是互联网中应用最广泛的应用层协议之一◻设计HTTP最初的目的是:提供一种发布和接收HTML页面的方法,由URI来标识具体的资源◻后面用HTTP来传递的数据格式不仅仅是HTML,应用非常广泛◼HTML(Hyper Text Markup Language):超文本标记语言◻用以编写网页。原创 2024-08-25 15:03:12 · 4177 阅读 · 0 评论 -
用基于epoll的reactor网络模型实现http server
最后再总结一下,webserver的核心代码就只有400行不到,在此基础上可以实现大多数的http请求功能,这个烂大街的C++项目之所以不受到面试官的欢迎,会因为确实比较简单,并且很多时候都不能称之为项目,更像是个demo,就算是网络层的实现,除了epoll之外,还可以用协程,io_uring,基于dpdk的用户态协议栈等,这些内容后续都会更新,将http认为是协议层,在此基础上比如说实现问卷调查等业务功能,才算是一个完整的项目。 清理:清空写缓冲区,状态重置为0,等待新的请求或关闭连接。原创 2024-08-25 14:06:42 · 1524 阅读 · 0 评论 -
实现基于epoll的reactor网络模型
后续会用这份 reactor 代码实现 http server(也就是C++选手熟知的烂大街的webserver)和 websocket server,后面还会更新知名的用 reactor 模型设计的网络库,如muduo等。它将数据从发送缓冲区写入到客户端套接字,并将套接字的事件重新设置为 EPOLLIN 以继续接收来自客户端的数据。reactor 将 io 管理,转变为事件管理,核心在于不同的 io 事件,对应不同的回调函数,先register(注册),后callback(回调)原创 2024-08-23 15:16:15 · 652 阅读 · 0 评论 -
IO多路复用(select/poll/epoll)——基础
本文主要介绍select/poll/epoll三大IO多路复用方法,主要介绍相关的函数使用。原创 2024-08-23 14:04:52 · 949 阅读 · 0 评论 -
socket网络编程——基础
使用套接字函数需要包含头文件 其实上述代码就是经典的一请求一线程模型,相比于大家所熟悉的IO多用复用,其实一请求一线程也不是一无是处,某种程度上来说是异步的,将IO就绪与IO收发数据分开,但是,一个请求就需要开一个线程,显然是很浪费资源的,并且 fd 也不好管理,如果有一种轻量级的线程就好了,也就是所谓的协程,这部分内容以后再详细讨论。原创 2024-08-22 19:04:59 · 1295 阅读 · 0 评论 -
4台虚拟机实现百万并发
百万并发对epoll来说是小菜一碟,问题在于如何解除所有系统限制,可以打开的文件数量限制和五元组的限制是所有人都会遇到的问题,NAT表溢出是比较独特的问题,这两份代码是可以跑到百万并发的(在物理机性能不要太低的情况下),每个人系统的独特限制可能会不一样,如果你出现了新的问题,可以在评论区留言讨论!原创 2024-08-22 13:53:33 · 703 阅读 · 0 评论