一般的に言えば、ソケット (TCP) はデータの受信に recv を使用します。カーネル キャッシュにデータがない場(chǎng)合はブロックされます。
TCP 接続が切斷されていないが、相手がデータを送信しない場(chǎng)合、recv 関數(shù)呼び出しはプログラムを永久にブロックしますか?
ソケットは、ブロッキングと非ブロッキングの 2 つのタイプに分けられます。デフォルトのブロッキング モードは、パラメーター設(shè)定によって非ブロッキングに変更できます。
ブロッキングの意味: 実際には、TCP/IP プロトコル スタック內(nèi)のバッファーです。 1) ブロッキング モード: バッファーにデータがない場(chǎng)合は、データが返されるまで待機(jī)します
(2) 非ブロッキング モード: データがない場(chǎng)合は、パラメーターがすぐに返されます。 Python では例外がスローされます)