每日三个面试题四

2020-11-18  本文已影响0人  crossroads

1. 自定义view
https://www.jianshu.com/p/3efa94014b97
2. 触摸事件

这个我之前没总结,现在加班有点严重(虽然被说是正常上下班),暂时没时间弄,但是一般总是和自定义view一起问这些触摸事件,所以还是放在这里,待有时间更新。大家先自己查一下,例如在dispatchEvent的move事件返回true ,或者调用super.dispatchevent再返回true会如何。

3. 三次握手四次分手

三次握手:

  1. 客户端向服务端发送SYN请求报文段,等待服务端确认
  2. 服务端收到SYN报文段,对该报文段确认,同时自己发送SYN请求信息
  3. 客户端收到服务器的SYN+ACK报文段 ,向服务端发送ACK报文段。

四次分手:拿客户端向服务端举例,

  1. 客服端发送FIN报文段,并将自己状态改为FIN_WAIT_1,表示没有数据发送给服务端
  2. 服务端收到FIN报文段,发送ACK报文段,表示同意请求,客户端收到请球将状态改为FIN_WAIT_2
  3. 服务端向客户端发送FIN报文段,请球关闭连接,服务端状态变成LAST_ACK状态
  4. 客户端收到服务端的FIN报文段,向服务端发送ACK报文段,同时客户端变为TIME_WAIT状态,服务端收到ACK报文段,就关闭连接。客户端等待2MSL后未收到数据,就关闭连接。

为什么要等待2MSL?

  1. 保证TCP协议的全双工连接能够可靠关闭
  2. 保证这次连接的重复数据段从网络中消失
    MSL:报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间。
上一篇 下一篇

猜你喜欢

热点阅读