1.直接close:客户端接收数据不完整,本地系统关闭socket,客户端收不到完整数据
2.shutdown_both:客户端接收数据不完整,end of file
3.shutdown_receive: 客户端接收数据完整
3.shutdown_send: 客户端接收数据不完整,远程主机关闭链接
关闭socket,但是确保对端一定收到数据的手段是:
1.shutdown_receive,同时在应用层确认全部数据已经投递到tcp堆栈,然后调用close
2.设计应用层关闭协议,由接收方主动关闭