1.tcp中两端的状态变换是什么时候产生的,是整条连接的状态,还是一端的状态?如三次握手,接收端收到sync后,发送ack后,server此时是sync_recv还是establish?client端收到ack会变成establish,是否是客户端发送消息服务端收到消息以后,服务器端才变成establish?否则,处在sync_recv状态的一端能否给客户端发信息?
回答:客户端收到服务端的sync后,会进行一次ack,服务端收到该ack后,也进入到了establish的状态。
- 水平触发和边沿触发,是epoll_ctl和epoll_wait共同完成的,如水平触发时,epoll_ctl设置in和水平触发,则会看一下是否有可读数据,如果没有则休眠在fd上,新数据进来,唤醒进程,如果有可读数据,则把fd挂在rdlist上,epoll_wait会返回可读