tcp/ip中的连接的状态都是保存在内核中,只能通过命令netstat去查看
tcp/ip中accept执行之时,此时连接的状态已经是established,accept只是从established_queue中取出这个连接,当然还有一个sync_rcvd的状态的queue,这个队列的容量就是backlog
tcp/ip中的连接状态是没有办法通过socket层的api来获知的,及时发送成功也不表示连接是正常的
针对连接的异常,只能通过event来判定,如:epollhup,连接是否已经断开。
针对数据接收和发送,只能通过recv的返回值和errorno的值来确定,如:EAGAIN,EWOULDBLOCK,EINTR等
tcp/ip中的发送和接收缓冲区都是只存储了数据部分,协议头基本没有机会看到,除非是在链路层的嗅探器或者原始套接字这种,才能拿到这些包信息
tcp/ip的可靠编程中需要注意tcp/ip中的连接的状态机,知道连接所处的状态
高并发编程模型中,需要将listen和accept与send和recv分离开来,以实现并发连接数和并发请求的快速响应
阅读(1047) | 评论(0) | 转发(0) |