C++ - Recv を使用してデータを受信するソケット (TCP) のブロック問題?
扔个三星炸死你
扔个三星炸死你 2017-06-10 09:48:28
0
2
1220

一般的に言えば、ソケット (TCP) はデータの受信に recv を使用します。カーネル キャッシュにデータがない場合はブロックされます。

TCP 接続が切断されていないが、相手がデータを送信しない場合、recv 関数呼び出しはプログラムを永久にブロックしますか?

扔个三星炸死你
扔个三星炸死你

全員に返信(2)
洪涛

ソケットは、ブロッキングと非ブロッキングの 2 つのタイプに分けられます。デフォルトのブロッキング モードは、パラメーター設定によって非ブロッキングに変更できます。
ブロッキングの意味: 実際には、TCP/IP プロトコル スタック内のバッファーです。 1) ブロッキング モード: バッファーにデータがない場合は、データが返されるまで待機します
(2) 非ブロッキング モード: データがない場合は、パラメーターがすぐに返されます。 Python では例外がスローされます)

いいねを押す +0
大家讲道理

setsockopt() 関数を使用してタイムアウト期間を設定できます

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!