上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 42 下一页
摘要: ###阻塞VS非阻塞 阻塞I/O:应用程序会被挂起,等待内核完成操作,实际上,内核所做的事情是将CPU时间切换给其他有需要的进程,网络应用程序在这种情况下是得不到CPU时间做该做的事情的。 非阻塞I/O:当应用程序调用非阻塞I/O完成某个操作,内核立即返回,不会把CPU时间切换给某个其他进程,应用程 阅读全文
posted @ 2022-03-24 00:36 牛犁heart 阅读(776) 评论(0) 推荐(0)
摘要: ###原理 和select类似,只是描述fd集合的方式不同,poll使用pollfd结构而非select的fd_set结构。 管理多个描述符也是进行轮询,根据描述符的状态进行处理,但poll没有最大文件描述符数量的限制。 ####select 和poll的区别 select采用的是位掩码的模型,参考 阅读全文
posted @ 2022-03-20 22:34 牛犁heart 阅读(457) 评论(0) 推荐(0)
摘要: ###原理:参考:https://my.oschina.net/fileoptions/blog/911091 select中内核函数有哪些 源码实现: #undef __NFDBITS #define __NFDBITS (8 * sizeof(unsigned long)) #undef __F 阅读全文
posted @ 2022-03-20 20:50 牛犁heart 阅读(299) 评论(0) 推荐(0)
摘要: ###要求: 写一个客户端程序和服务器程序,客户端程序连接上服务器之后,通过敲命令和服务器进行交互,支持的交互命令包括: pwd:显示服务器应用程序启动时的当前路径。 cd:改变服务器应用程序的当前路径。 ls:显示服务器应用程序当前路径下的文件列表。 quit:客户端进程退出,但是服务器端不能退出 阅读全文
posted @ 2022-03-20 11:18 牛犁heart 阅读(421) 评论(0) 推荐(0)
摘要: ###故障模式总结 异常情况可归结为两大类: 第一类,是对端无FIN包发送出来的情况;第二类是对端有FIN包发出来 ###对端无FIN包发送出 网络终端造成对端无FIN包 很多原因都会造成网络中断,这种情况,TCP程序并不能及时感知异常信息。除非网络中的其他设备,如路由器发送出一条ICMP报文,说明 阅读全文
posted @ 2022-03-19 22:18 牛犁heart 阅读(554) 评论(0) 推荐(1)
摘要: ###TCP是一种流式协议 TCP数据是流式的特性,可分别从发送端和接收端来阐述 发送端:当调用send函数完成数据“发送”后,数据并没有真正从网络上发送出去,只是从应用程序拷贝到了操作系统内核协议栈中,至于什么时候发送,取决于发送窗口、拥塞窗口以及当前发送缓冲区的大小等条件,也就是说,不能假设每次 阅读全文
posted @ 2022-03-18 23:30 牛犁heart 阅读(595) 评论(0) 推荐(0)
摘要: ###问题 当通过服务端发起的关闭连接操作,引发了一个已有的TCP连接处于TIME_WAIT状态,此时,服务器重启,继续绑定原来ip与端口号,返回了Address already in use的错误。 ###重用套接字选项 一个TCP连接时通过四元组(源地址、源端口、目的地址、目的端口)来唯一确定。 阅读全文
posted @ 2022-03-18 00:12 牛犁heart 阅读(688) 评论(0) 推荐(0)
摘要: ###UDP connect的作用 UDP connect函数的调用,并不会引起像TCP连接那样,和服务器目标端网络交互,并不会触发所谓的“握手”报文发送和应答。 UDP套接字进行connect操作其主要是为了让应用程序能够接受“异步错误”的信息。 在udp编程中,如果不调用connect操作的客户 阅读全文
posted @ 2022-03-15 23:56 牛犁heart 阅读(1598) 评论(0) 推荐(0)
摘要: 从TCP角度看待数据流的发送和接收。 ###调用数据发送接口后,发生了什么呢? 调用这些send/write等接口并不意味着数据被真正发送到网络上,其实这些数据只是从应用程序中被拷贝到了系统内核的套接字缓冲区中,或者说是发送缓冲区中,等待协议栈的处理,什么时候发送出去?有操作系统内核的TCP协议栈来 阅读全文
posted @ 2022-03-14 00:05 牛犁heart 阅读(330) 评论(0) 推荐(0)
摘要: 心跳检测-gateway-worker手册 ###为什么需要心跳检测? 正常的情况客户端断开连接会向服务端发送一个fin包,服务端收到fin包后得知客户端连接断开,则立刻触发onClose事件回调。 但是有些极端情况如客户端掉电、网络关闭、拔网线、路由故障等,这些极端情况客户端无法发送fin包给服务 阅读全文
posted @ 2022-03-13 22:26 牛犁heart 阅读(1214) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 42 下一页