![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络通信
follow_blast
这个作者很懒,什么都没留下…
展开
-
同步、异步、阻塞、非阻塞
1.经典答案 同步和异步关注消息通信机制 同步:发出一个调用,在没有得到结果之前,该调用不返回 异步:调用发出之后,直接返回,不等待结果,被调用者会通过消息、状态来通知调用者或通过回调函数来处理这个调用 阻塞和非阻塞关注程序在等待结果(消息、返回值)时的状态 阻塞:调用结果在返回之前,线程会被挂起,调用线程只有在得到结果时才会返回 非阻塞:不能立刻得到调用结果之前,调用不会挂起线程,而...原创 2018-08-27 15:07:52 · 159 阅读 · 0 评论 -
tcp和udp的区别
1.最大的区别 tcp是可靠的、面向连接的协议,udp是不可靠、非连接协议,这个区别决定了2者的其他的区别 连接就像是打电话,非连接就像邮局寄信 可靠是因为tcp有重传机制,当write时(假设缓冲区足够大),实际是写入缓冲区,只有当数据被另一方接收了(另一方回传了ack信号)时,才会把刚才发送的数据从缓冲区删除,不然就会重发 2.字节流和数据报 tcp是字节流,因为是连接的,1对1的通...原创 2018-08-28 14:57:47 · 787 阅读 · 0 评论 -
libevent分析和使用
1.libevent介绍 libevent是一个轻量级的基于事件驱动的高性能的开源网络库,支持多种系统,对不同系统的函数进行再次封装统一接口,编译的时候,选择自己的系统就行了 因为libevent的出色的轻量级、高性能的表现,很多其他的开源库基于此库,开发出了适应更多场景的开源库 例如memcached,在libevent上面增加了多线程的支持,主要利用了主线程+多个工作线程,实现线程池...原创 2018-10-11 16:03:47 · 517 阅读 · 0 评论 -
select/poll/epoll函数的区别
1.多路IO复用 监测多个事件,一旦某个事件发生了,就进行相应的处理 select、poll、epoll就是实现了这个机制,但是实现一些区别 2.select、poll函数 这2者的差别不太,都有一些性能上的弊端,select函数是监测的文件描述符有限制(用数组保存需要监测的文件描述符),poll函数没有(用链表保存) 刚刚说到性能上的弊端 监测的文件描述符要在内核和用户空间之间...原创 2018-10-12 09:39:44 · 647 阅读 · 0 评论