![](https://img-blog.csdnimg.cn/direct/c05ebe28889a42ec8a7f8e2f0739b52e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络编程
文章平均质量分 83
网络编程
玖玖玖_violet
某985在读研究生,学习ing
展开
-
基于网络C/S非阻塞模型的epoll ET触发模式
如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上没读写完的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!例如,当从客户端读固定字节数据时,如果客户端发送的数据不足,则会阻塞在读固定字节函数处,要唤醒这种状态,则需要客户端有新的数据发送过来,但此时需要epoll_wait返回才能知道有新的数据被发送过来,而程序阻塞在读固定字节函数处,而非在epoll_wait处,因此可能导致读数据处的阻塞不能被唤醒;原创 2023-10-23 14:20:38 · 162 阅读 · 0 评论 -
网络编程:事件模型关于epoll 边缘触发与水平触发的理解
那么在第5步调用epoll_wait之后将有可能会挂起,因为剩余的数据还存在于文件的输入缓冲区内,而且数据发出端还在等待一个针对已经发出数据的反馈信息。分析:边缘触发,第一次只输出aaaa\n,等到下一次epoll记录到读事件的时候才会发送下一条数据bbbb\n,并且此时缓冲区中会有cccc\ndddd\n数据,时间一长会造成缓冲区数据过多。(2)非阻塞方式:假如需要读的数据读不够n个字节,server会阻塞,epoll不能继续执行,则会产生死锁。(两种触发模式,减少epoll_wait()调用的次数)原创 2023-10-20 16:38:37 · 783 阅读 · 0 评论 -
解释什么是异步非阻塞?
同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO 操作并等待或者轮询的去查看IO 操作是否就绪,而异步是指用户进程触发IO 操作以后便开始做自己的事情,而当IO 操作已经完成的时候会得到IO 完成的通知。阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作方法的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入方法会立即返回一个状态值。1,公交站有广播的就是非阻塞的。2,公交站没有广播的就是阻塞的。原创 2023-10-19 19:38:02 · 112 阅读 · 0 评论 -
基于TCP协议开发文件传输系统一
简介:基于TCP协议开发文件传输系统,搭建多进程网络服务程序框架,实现TCP长连接心跳机制、文件上传与下载、异步通信实现快速传输。原创 2023-03-15 15:17:24 · 1323 阅读 · 0 评论 -
TCP/IP总结
网络编程基础知识原创 2023-03-12 16:11:36 · 237 阅读 · 0 评论