キープアライブが無効な場合の io.Copy タイムアウト

PHPz
リリース: 2024-02-13 21:36:08
転載
1182 人が閲覧しました

禁用 keepalive 时 io.Copy 超时

#phpエディターのゆーざいが今日は「キープアライブ無効時のio.Copyタイムアウト」に関する問題を紹介します。 Go言語のio.Copy関数を使用してデータ送信を行う場合、キープアライブを無効にすると送信タイムアウトが発生する場合があります。この問題は開発者に何らかの問題を引き起こす可能性があるため、この問題の発生を回避するためのいくつかの解決策を知る必要があります。この問題を解決する方法を見てみましょう!

質問内容

Linuxキープアライブを無効にした場合

リーリー

そして次のコードを実行します

リーリー

io.Copy は「splice: 接続タイムアウト」を返します

キープアライブを有効にすると

リーリー

io.Copyで十分です

TCP クライアントが 1 秒間隔でパケットを送信し、tcp_keepalive を無効にしてみましたが、これも機能しました。

io.Copyを置き換える別のコードを書きました

リーリー

15 秒後に読み取りタイムアウトになり、30 秒間は動作しません

なぜこれはとても奇妙なのでしょうか?

解決策

答え: 「カーネル TCP スタック」がキープアライブを使用してネットワークを検出する場合、「カーネル TCP スタック」がキープアライブを送信する必要がある場合、net.ipv4.tcp_keepalive_probes = 0 がタイムアウトになります

以上がキープアライブが無効な場合の io.Copy タイムアウトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!