linux下C++ socket网络编程(11)
// 参数enable_et表示是否启用ET模式 , 如果为True则启用 , 否则使用LT模式
static void addfd( int epollfd int fd bool enable_et )
{
struct epoll_event ev;
ev.data.fd = fd;
ev.events = EPOLLIN;
if( enable_et )
ev.events = EPOLLIN | EPOLLET;
epoll_ctl(epollfd EPOLL_CTL_ADD fd &ev);
// 设置socket为非阻塞模式
// 套接字立刻返回 , 不管I/O是否完成 , 该函数所在的线程会继续运行
//eg. 在recv(fd...)时 , 该函数立刻返回 , 在返回时 , 内核数据还没准备好会返回WSAEWOULDBLOCK错误代码
fcntl(fd F_SETFL fcntl(fd F_GETFD 0)| O_NONBLOCK);
推荐阅读
- Linux|为什么要开发那么多基于Linux的国产系统,直接使用Linux不可以吗?
- 从头学习Linux基础
- 3步教你做个Linux系统,易用性不比Windows差!你学会了吗?
- Linux该如何学习
- Linux在云端是怎么帮助大家工作简单方便的那?
- Linux当前应用的角色-个人环境的使用
- Linux当前应用的角色-企业环境的应用
- 托瓦斯的Linux的发展
- Linux是什么与如何学习
- 国产linux系统有希望了! 韩国也将摆脱微软依赖: 大规模使用linux