10

違いはありますか

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($socket, 2) if $socket;
close($socket) if $socket;

そして最後に、close必要なものはありますか?

4

1 に答える 1

13

shutdownTCP 接続の一方の側で読み取り ( 0)、書き込み ( 1)、またはその両方 ( 2) を停止します。したがって、最初の 2 つのスニペットと次の 2 つのスニペットの効果は同じです。

shutdownファイル記述子を解放しないため、close引き続き必要です。

closeシングルと が先行するものとの違いshutdown( fd, 2 )は、後者の場合、TCP は未処理のデータをリモート側に配信しようとしないことです ( を参照SO_LINGER)。

于 2012-09-05T14:07:20.320 に答える