![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程篇
文章平均质量分 73
网络
自律即自由w
大二再读,C++ | Golang
展开
-
TCP通信并发:
上次的程序只能保持,单线程或者进程。原创 2024-05-05 13:32:53 · 293 阅读 · 1 评论 -
一个通俗易懂的例子,带你彻底明白 同步异步,阻塞非阻塞
阻塞I/O:程序等待I/O操作完成,不能做其他事情。非阻塞I/O:程序发出I/O请求后,可以继续做其他事情,但需要不断检查I/O是否完成。同步I/O:程序等待I/O操作完成,按顺序执行任务。异步I/O:程序发出I/O请求后,立即继续做其他事情,I/O操作在后台完成,并在完成后通知程序。原创 2024-05-28 08:36:04 · 306 阅读 · 0 评论 -
C++实现基于http协议的epoll非阻塞模型的web服务器框架(支持访问服务器目录下文件的解析)
服务器的IP地址:端口 应用层协议使用:http,数据需要在浏览器端使用该协议进行包装响应消息的处理也是浏览器完成的 => 程序猿不需要管-客户端通过ur1访问服务器资源。客户端发送给的请求消息是基于http的 -需要能够解析http请求 服务器回复客户端数据,使用http协议封装回复的数据=>http响应。content-length :服务器给客户端的数据快的长度==http协议的第四块的数据块的长度,总字节数;响应的数据,根据客户端请求给客户端回复的数据。第一部分:GET :提交的数据的方式。原创 2024-05-23 22:54:45 · 932 阅读 · 0 评论 -
TCP三次握手,四次挥手
在程序中服务器端和客户端程序都调用了close()函数,四次挥手就完成了。6.窗口大小 :接收端通知发送端 缓存剩余的容量,如果为0,发送端阻塞。//断开链接的过程,四次挥手完成之后,双向连接被双向断开。//断开连接的请求可以由客户端发起,也可以有服务器发起。调用close (通信的文件描述符)函数,连接断开。图中是客户端先断开连接,其实服务器端先断开也可以。序号:客户端或者服务器端生成的随机数。源端口 :当前的进程端口,2字节。//需要用到的标志位:FIN,ACK。目的端口:对方的端口 ,2字节。原创 2024-05-01 23:26:29 · 478 阅读 · 1 评论 -
IP分片的隐患,以及TCP分片
好的,我们来用一个生活中的例子更详细地解释 MTU、MSS,以及 IP 和 TCP 分片。原创 2024-06-10 17:02:02 · 1169 阅读 · 0 评论 -
IO 多路复用 来了(最详细版)
函数返回时,返回的结果集合可能会比监视集合小,因为只会返回发生了事件的套接字的文件描述符。不能跨平台,select有1024最大的并发上线,poll是没有的,select和poll都是线性的,而poll是动态数组,内部是链表,效率不高。3.在调用select的时候需要我们通过参数的形式将要检测到文件描述符的集合传递内核中去,内核根据这个集合进行的文件描述符的状态检测。由于是非阻塞,缓存区一直再读,如果没有数据了,非阻塞还是会继续读,然后会报错误read ,recv失败了,返回-1;原创 2024-05-09 20:21:53 · 798 阅读 · 0 评论 -
pthread线程相关
exit(0);return;被杀死的线程,然后回收之后,退出值是-1;pthread cancel0)杀死线程必须要到达“取消点”(保存点),才能生效否则无法杀死线程。应该在被cancel的线程中,调用 pthread testcancel() 函数 来 添加“取消点”(保存点)。。原创 2024-05-02 22:38:19 · 743 阅读 · 0 评论 -
初见成效!!TCP连接成功(最易懂)
客户端发送连接请求,写到 writebuffer 里面,然后cfd 链接监听的文件描述符 lfd 的readbuffer里面调用发送数据的函数,并没有发送出去,而是到了内核的写缓冲区里面,内核检测到写缓冲有数据,会将数据发送到网络的另外一端如果是通信,就会进入对方的读缓冲区,双方都是通信套接字,然后对方调用一个read函数,就可以取出write();原创 2024-05-01 00:30:12 · 1158 阅读 · 1 评论 -
TCP通信 ,客户端服务端流程
安全的:通信过程会对通信进行校验,判断对方有没有接受到发送的数据,如果没有接受(数据丢失)会对数据进行重传。4.等待并且接受客户端连接(无连接阻塞等待,有连接解除阻塞),得到新的描述符用于通信的文件描述符。6.断开连接,关闭文件描述符(可以关闭监听,也可以关闭通信)5.使用accept返回值对应的通信文件描述符和客户端通信。2.使用得到的通信文件描述符连接服务器,通过ip和端口去找。2.让监听的文件描述符和本地的ip+端口进行绑定。1.创建用于通信的套接字==(文件描述符)连接:三次握手,建立双向链接。原创 2024-05-01 00:09:01 · 517 阅读 · 1 评论 -
linux网络编程启动!(开端)
在B/S模型中,用户通过浏览器与服务器进行通信,而在C/S模型中,用户通过客户端与服务器进行通信,例如QQ和微信等应用程序。HTTP和HTTPS之间的加密层,以及IP地址和端口的重要性。IP协议有IPv4和IPv6两种版本,而端口则用于定位主机上运行的特定进程的地址。了解到如何使用ping命令和ifconfig命令在Linux中查看IP地址,并且了解了常用的通信流程,例如OSI/ISO网络分层模型,其中应用层是最为关键的。此外也学习了协议格式以及打包和解包的流程。原创 2024-04-28 23:02:24 · 221 阅读 · 0 评论