Unp-高级i/o复用技术 读书笔记

 

话说unpV2书上没有epoll,所以老师专门补充了此章节。

更新:由于ppt 使用 发送到 word...图片都很小。。下次记着调大图片。

Unp-高级i/o复用技术 读书笔记 (v0.3)

Unp-高级i/o复用技术 读书笔记 (v0.3)

第一阶级:要点:epoll的特点:事件的增量添加,删除。触发条件。..

Unp-高级i/o复用技术 读书笔记 (v0.3)


Todo(google):   如果有poll epoll 函数,的函数对比就好啦。

Unp-高级i/o复用技术 读书笔记 (v0.3)

Unp-高级i/o复用技术 读书笔记 (v0.3)

66第一阶级:ctl看起来是event(生命周期)。下图中,看好 函数指针和events

Unp-高级i/o复用技术 读书笔记 (v0.3)

Unp-高级i/o复用技术 读书笔记 (v0.3)

66epollin…让我联想到 android .init.c4个对列,里有pollevent类型,还有oneshot 属性

第一阶级:几大类,有in/out…..Pri(带外数据)....read/writenorm,band)主要的看下下个ppt

Unp-高级i/o复用技术 读书笔记 (v0.3)

Unp-高级i/o复用技术 读书笔记 (v0.3)

Unp-高级i/o复用技术 读书笔记 (v0.3) 

66:要点2epoll_wait

Unp-高级i/o复用技术 读书笔记 (v0.3) 

Unp-高级i/o复用技术 读书笔记 (v0.3)

3.epoll 客户端:create…registerEvent… waitEvent…

Unp-高级i/o复用技术 读书笔记 (v0.3)

注:常规的传输:sin.read…socket.write…; 否则socket.shutdown…

Unp-高级i/o复用技术 读书笔记 (v0.3)

第二种情况;(todo,不懂),sock.read…sock.write…为何客户端维持sock.read?

Unp-高级i/o复用技术 读书笔记 (v0.3)

 

		ep.create();
		events[0].events = EPOLLIN;
		events[0].data.fd = fileno(stdin);
		ep.registerEvent(fileno(stdin), events[0]);
		events[0].data.fd = sock.getFd();
		ep.registerEvent(sock.getFd(), events[0]);

		while (true)
		{
			int ret, length;
			ret = ep.waitEvent(events, 2, -1);

		for (int i = 0; i < ret; ++i)
		{
		    if (events[i].data.fd == fileno(stdin))
		    {
		if ((length = sin.read(sbuf, BUFFER_SIZE)) == 0) {
			sock.shutdown();
			ep.unregisterEvent(events[i].data.fd);
		       }
			else
			    length = sock.write(sbuf, length);
		    }
		else if (events[i].data.fd == sock.getFd())
		{
	if ((length = sock.read(rbuf, BUFFER_SIZE)) == 0) {
			ep.unregisterEvent(events[i].data.fd);
			goto BREAK;
		    }
		    length = sout.write(rbuf, length);
		}
		else
		    throw EXCEPTION();
	}
}

重点:epoll服务器()

Unp-高级i/o复用技术 读书笔记 (v0.3)

 

[todo.不懂]第一阶级读码;waitevent… accept… socket.insert…. registerEvent..

               [??]循环中,内外的意义?

Unp-高级i/o复用技术 读书笔记 (v0.3)

 

Unp-高级i/o复用技术 读书笔记 (v0.3)

 

相关文章:

  • 2021-08-23
  • 2021-08-26
  • 2021-08-05
  • 2021-10-26
  • 2022-12-23
  • 2021-05-24
  • 2022-12-23
  • 2021-03-31
猜你喜欢
  • 2021-06-23
  • 2021-05-21
  • 2021-06-17
  • 2022-02-14
  • 2021-12-05
  • 2021-11-02
相关资源
相似解决方案