Chinaunix首页 | 论坛 | 博客
  • 博客访问: 120957
  • 博文数量: 20
  • 博客积分: 1627
  • 博客等级: 上尉
  • 技术积分: 383
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 16:11
文章分类

全部博文(20)

文章存档

2012年(5)

2011年(2)

2010年(12)

2009年(1)

我的朋友

分类: C/C++

2010-04-02 15:44:38

画了个图,分析下tcp的状态在epoll中的表现。

我们假设在服务器端应用epoll,端口监听起来后加入epoll,epoll_wait返回应该是以下几种情况:

1.当服务器端收到了3次握手信号后epoll_wait返回,程序accept返回fd,accept是立即返回的;

2.当服务器检测到fd里有数据时返回,这个都没问题;

3.当服务器收到FIN M 分量后,epoll_wait返回,这时read=0,说明对方关闭。


以上都是个人猜测啊。

这里有个问题,也似猜测啊,客户端close后,程序退出,socket状态变成了FIN_WAIT_1,这个时候应该是已经把这个状态维护转交给内核了,程序已经退出不管了,要不然close会这么快。:-)

欢迎大家一起讨论。



阅读(2804) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~