shutdown($socket,0) if $socket; shutdown($socket,2) if $socket; close($socket) if $socket;
和
shutdown($socket,2) if $socket; close($socket) if $socket;
也有区别
shutdown($socket,1) if $socket; shutdown($socket,2) if $socket; close($socket) if $socket;
最后还是需要关闭吗?
shutdown
关机不释放文件描述符,因此仍然需要close.
close
在关闭(fd,2)之前的单个关闭和一个之间的区别在于,在第二种情况下,TCP不会尝试将未完成的数据提供给远程端(参见SO_LINGER).
SO_LINGER