![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
好斗的骑士
奋发图强,明日阳光。
展开
-
http 三次握手和四次挥手
1、三次握手第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),原创 2022-03-20 21:04:26 · 254 阅读 · 0 评论 -
socket、serverSocket
客户端和服务端通信的原理。tomcat作为服务器其实也是作为客户端。当浏览器发送请求之后,tomcat端绑定了本地的ip和port,如果创建连接,就需要使用创建socket(区分serverSocket)。通过socket与serverSocket进行来回读写。当时作为http协议没有实现服务端向客户端发送消息的。只有客户端对服务端发送消息。...原创 2022-01-21 11:28:24 · 632 阅读 · 0 评论 -
网络编程-select、poll、epoll
1.问题当有多个客户端连接去请求服务器的时候,如果同步阻塞的话,就会出现排队处理的情况,处理请求的效率会非常的慢。这种是同步阻塞。一个线程只能处理一个请求。遇到IO的时候就只能选择等待。当然我们可以使用多线程的方式进行处理,也就是说一个连接使用一个线程,几十个连接还是能处理的,当连接超过几百个的话可能服务器就很难应付。只进行线程的切换就消耗掉了大批的资源。从内核态到用户态来回切换。2.多路复用IO从字面意思的理解是多个连接socket(线程)公用一个线程。忙闲等待。3.具体的实现方式原创 2022-01-21 11:18:57 · 1692 阅读 · 0 评论