网络编程
嵌入式阿香
这个作者很懒,什么都没留下…
展开
-
errno!=EINTR是什么意思
如果错误为EINTR表示在读/写的时候出现了中断错误read()如果读到数据为0,那么就表示文件结束了,如果在读的过程中遇到了中断那么会返回-1,同时置errno为EINTR。或者是write()如果写的过程中遇到中断就会返回-1 并设置errno为EINTR...原创 2021-06-19 15:06:05 · 5819 阅读 · 0 评论 -
网络编程学习笔记1
1、EPOLLRDHUP 表示读关闭2、EPOLLHUP 表示读写都关闭3、assert()断言函数用于在调试过程中捕捉程序的错误。 括号里的值为非0 则什么事也不会发送如果为0 或者false 表明程序出错,assert() 会向标准输出设备(一般是显示器)打印一条错误信息,并调用 abort() 函数终止程序的执行。4、setsockopt在TCP连接中,recv等函数默认为阻塞模式(block),即直到有数据到来之前函数不会返回,而我们有时则需要一种超时机制使其在一定时间后返回而不管原创 2021-06-19 14:45:27 · 126 阅读 · 0 评论 -
简述Linux Epoll ET模式EPOLLOUT和EPOLLIN触发时刻
ET模式称为边缘触发模式,顾名思义,不到边缘情况,是死都不会触发的。EPOLLOUT事件:EPOLLOUT事件只有在连接时触发一次,表示可写,其他时候想要触发,那你要先准备好下面条件:1.某次write,写满了发送缓冲区,返回错误码为EAGAIN。2.对端读取了一些数据,又重新可写了,此时会触发EPOLLOUT。简单地说:EPOLLOUT事件只有在不可写到可写的转变时刻,才会触发一次,所以叫边缘触发,这叫法没错的!其实,如果你真的想强制触发一次,也是有办法的,直接调用epoll_ctl重新设置一原创 2021-06-19 13:18:00 · 811 阅读 · 0 评论