Open wangbinyq opened 8 years ago
tcp 是一种流模式的协议,udp 是一种数据报模式的协议 异常错误处理 EMSGSIZE,发送的数据长度大于套接口发送缓冲区大小 EAGAIN,EWOUDLBLOCK,非阻塞socket返回
tcp 是一种流模式的协议,udp 是一种数据报模式的协议
EMSGSIZE,发送的数据长度大于套接口发送缓冲区大小 EAGAIN,EWOUDLBLOCK,非阻塞socket返回
对于软件异常、错误,应用层能感知到比如,比较好处理。而对于硬件层的异常错误,比如服务器断电,此时由于服务端不会发送RST,使客户端认为连接还一直存在,这时就需要在应用层添加心跳(tcp提供的keeplive的时间太长)。
有close和shutdown方法。
使用close中止一个连接,但它只是减少描述符的参考数,并不直接关闭连接,只有当描述符的参考数为0时才关闭连接。 shutdown可直接关闭描述符,不考虑描述符的参考数,可选择中止一个方向的连接。
A more common (and not event-driven) approach is to call shutdown(), then call recv() in a loop until it returns 0 (graceful disconnect) or SOCKET_ERROR, then call close(). 同步、异步,阻塞、非阻塞
A more common (and not event-driven) approach is to call shutdown(), then call recv() in a loop until it returns 0 (graceful disconnect) or SOCKET_ERROR, then call close().
tcp 分包
对于软件异常、错误,应用层能感知到比如,比较好处理。而对于硬件层的异常错误,比如服务器断电,此时由于服务端不会发送RST,使客户端认为连接还一直存在,这时就需要在应用层添加心跳(tcp提供的keeplive的时间太长)。
断开连接
有close和shutdown方法。