問題タブ [setsockopt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
88750 参照

linux - SO_REUSEADDR (setsockopt オプション) の意味は何ですか - Linux?

マニュアルページから:

SO_REUSEADDR プロトコルでサポートされている場合、bind() に提供されたアドレスの検証に使用される規則で、ローカル アドレスの再利用を許可する必要があることを指定します。このオプションは int 値を取ります。これはブール値のオプションです

いつ使用すればよいですか?「ローカルアドレスの再利用」が与えるのはなぜですか?

0 投票する
8 に答える
150458 参照

sockets - TCP オプション SO_LINGER (0) が必要になるのはいつですか?

オプションの正式な意味は理解できたと思います。私が現在扱っているいくつかのレガシーコードでは、オプションが使用されています。顧客は、側から近い接続で、側からの FIN への応答として RST について不満を述べています。

いつ使用すべきかわからないため、安全に削除できるかどうかわかりません。

オプションが必要になる場合の例を教えてください。

0 投票する
5 に答える
4504 参照

c++ - マルチキャスト レシーバー ソケットでの重複パケット

以下の MulticastReceiver の実装にバグがあるようです。

<224.0.25.46,13001> と <224.0.25.172,13001> の 2 つのインスタンスを作成すると、各ストリームで各パケットが 2 回取得されます。ポインタはありますか?私の推測は REUSEADDR ですか?

アドバイスしてください。もちろん、改善や最適化があれば指摘してください。

0 投票する
1 に答える
21091 参照

c++ - Ubuntu で TCP_NODELAY が見つからない

TCP_NODELAYパラメータを設定して、Ubuntu Linux ボックスの TCP ソケットでNagle のアルゴリズムを無効にしようとしています。何らかの理由で、この定数はまたはで定義されていません。この定数は非推奨になり、Linux から削除されましたか、それとも何か不足していますか?<sys/types.h><sys/socket.h>

}

0 投票する
1 に答える
844 参照

flash - DatagramSocket のマルチキャスト グループに参加しますか?

AIR UDP ソケット (DatagramSocket) で別のアプリケーションによってマルチキャストされたネットワーク データを受信したいと考えています。

他のプログラミング言語では、これは (Java) " sock.joinMulticastGroup(group) " を呼び出すことによって実現されます。C では、単純な " setsockopt " 呼び出しです。

「setsockopt」と同等のものを使用して、Adobe Flash (TCP または UDP) でソケットを微調整する方法については何も見つかりません (ちなみに、別の「setsockopt」呼び出しで、受信バッファ サイズも変更したいと考えています)。

できるかできないかわかる方いましたら教えてください。マルチキャスト データをローカルで受信し、ローカルホストの TCP または UDP フラッシュ ソケットに転送するための専用アプリ (C で記述します) を用意する準備ができています。

どうもありがとう!:)

マチュー

PS:これは私が Adob​​e フォーラムに投稿したメッセージへのリンクですが、あまり成功していません。週末かな?;)

PPS:これは私を怖がらせる別のリンクです。質問は 2008 年のものですが、最後の回答はわずか 3 か月前のものです。

0 投票する
1 に答える
5826 参照

c++ - setsockopt: C++ の不正なファイル記述子

バインド機能をチェックしていないため、有名なエラー「アドレスは既に使用されています」があります。

これが私のコードです:

しかし、コードを実行すると、次のようになりました。 setsockopt: Bad file descriptor

ガイドBeejnetからのコードは正しいです。しかし、なぜエラーが発生したのですか? コードの位置が間違っているのではないでしょうか?

sock_fd が最初に呼び出されるのは、関数 w_socket にあります。

}

デフォルトでは、sesockopt がありますが、チェックはありません。試してみましたが、うまくいきません。

0 投票する
2 に答える
15190 参照

c - SO_SNDBUFの効果

次のコードセグメントがどのように、そしてなぜ機能するのか理解できません。

送信バッファの値を確認すると、実際には5000 * 2 = 10000に正しく設定されています。ただし、送信バッファサイズを超えて送信しようとすると、すべてが送信されます。例えば:

これにより、30000が出力されます。

これはどの程度正確に機能しましたか?送信バッファのサイズが10000に制限されていたという事実は効果がありませんでしたか?もしそうなら、正確には何が起こったのですか?ある種の断片化?

更新:ソケットが非ブロッキングモードの場合はどうなりますか?私は次のことを試しました:

  1. バッファサイズを10000(5000 * 2)に変更すると、16384バイトが送信されます
  2. バッファサイズを20000(10000 * 2)に変更すると、30000バイトが送信されます

もう一度、なぜですか?

0 投票する
2 に答える
4033 参照

perl - Perl でソケットに「SO_RCVTIMEO」を設定するにはどうすればよいですか?

私がこのようにしようとすると:

その後、私のスクリプトは「setsockopt: Invalid argument at [line 2]」で死にます。IO::Socketとpodsはperlfunc言いませんが、perlfunc はTCP_NODELAY上記のように見える例を示しています。

簡単なメモ:私はできる限り自分の質問に答えましたが、確かにより良い答えを歓迎します。最も明白な「より良い」は、少なくともPOSIXマシンでは移植可能であることです)

0 投票する
1 に答える
1532 参照

tcp - tcp ウィンドウ サイズは、tcp ソケットの SND_BUF または RCV_BUF に関連していますか?

setsockopt API を介してソケットの SND_BUF を変更すると、TCP レイヤーの元のウィンドウ サイズがそれに応じて変更されるかどうかを知りたいですか?

0 投票する
2 に答える
40294 参照

c - SO_RCVBUFの値を変更しても機能しないのはなぜですか?

すべてのトラフィックを読み取るためにRAWソケットを作成するプログラムを作成しています。socket()とrecvfrom()の呼び出しの間(最後の呼び出しは、バッファーからすべてのパケットを取り出すためのループ内にあります)、5秒待ちます。

プログラムを実行すると、hping3コマンドを使用して«高速モード»(バッファを高速で埋めるため)で約200パケットをプログラムに送信します。5秒が経過するとすぐに、私のプログラムはバッファから約150パケットを抽出します。

より良い結果を得るために、受信バッファのサイズを変更しようとしています。

ただし、«a»、1、または10000000の値が何であれ、何も変わらないように見えます。それでも、バッファから最大150パケットを取得します。

どうしたの?

編集:«a»の値はgetsockopt呼び出しで確認されます。