問題タブ [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 投票する
1 に答える
388 参照

sockets - BSD ソケットは、次の送信前に確認応答を待機しないように、sockopt オプションを設定します

独自の単純な raw TCP プロトコルを使用して、イーサネット経由で数キロバイトのデータを送信しようとしています。

標準の Windows 構成では、TcpAckFrequency = 1 でレジストリを変更しない限り、確認応答パケットを返す前に 2 つのパケットを受信する必要があります。この場合、1 つの受信パケットで確認応答を返すのに十分です。そうでない場合は、TcpDelAckTicks の後に ACK を取得します* デフォルトでは 100 = 200 ミリ秒 (これは別のレジストリ キーです)。これは、データを 1460 バイト未満のチャンクで送信すると問題になります。各チャンクは 200 ミリ秒後に確認応答を取得し、送信者はそれを待ってから次のパケットを送信するためです。1 つの解決策は、データを 1460 バイトより大きい単位で送信することです。これにより、実際には 2 つのパケットが送信され、ACK が受信されます。

しかし、より小さなパケットを送信したい場合はどうすればよいでしょうか? 次のパケットを送信する前に確認応答パケットを待機しないように、setsockopt を使用してソケットを構成する方法はありますか?

事前にどうもありがとうございました。

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

c++ - IP_TTL と IP_TOS を設定できない Setsockopt

UDP ソケットを定義しました

// 識別子 IP_TTL 未定義

// 識別子 SOL_IP と IP_TOS は未定義

コンパイル エラーが発生しました。いくつかの HeaderFile がありませんか

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

c# - ReuseAddress を true に設定すると、BeginReceive からのコールバックがないのはなぜですか? UDP

受信用の非同期コールバック関数を使用して、UDP 受信および送信機能用の C# ソケットを作成しています。シンプルですよね!すべてのしわをアイロンがけするのに時間がかかりましたが、うまくいきました...まあ、ポートを独り占めする限り!他のアプリケーションが同じポート番号を使用できるようにする必要があります。問題ありませんよね!そのためのオプション、ReuseAddress の SetSocketOption(...) があります...

ReuseAddress を true に設定すると、コールバック関数がヒットしなくなるのはなぜですか?

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

sockets - キープアライブ オプションを有効にして停止したクライアントを検出する方法

タイトルで述べたように、キープアライブ オプションを使用して、サーバー側で停止したクライアントを検出しています。接続された tcp ソケットでキープアライブを有効にするコード スニペットは、次のようになります。TCP_KEEPCNT、TCP_KEEPIDLE、TCP_KEEPINTVL などのキープアライブ動作を操作するその他のオプションは、デフォルトでシステムです。

サーバー側では、接続されたソケットで、サーバー スレッドが recv 呼び出しになり、クライアントがサーバーにコマンドを送信するのを待ちます。このコード スニペットは次のようになります。

クライアントが正常にシャットダウンすると、recv 呼び出しは 0 を返し、クライアントが終了したことを確認します。だから私の質問は、キープアライブがデッドクライアントを検出したときにrecvが返すものは何ですか? または、「get_last_sock_error」から読み取ることができるシステムエラー変数にエラーを設定し、クライアントが停止していることを確認します。ありがとう。

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

c++ - ソケットの IP_ADD_MEMBERSHIP、ソケットはユニキャストもリッスンしますか?

以下のコードを考えると、

マルチキャスト用に UDP ソケットをバインドしようとしています。
私はそれを特定のポートにバインドし、IP_ADD_MEMBERSHIPリッスンするアドレスを設定しました。

私の質問: ソケットは、そのポートにバインドされたユニキャスト UDP パケットを受信しますか? もしそうなら、どうすればそれを防ぐことができますか?マルチキャストのみ受信したい。

0 投票する
0 に答える
322 参照

c - ソケットでAddressオプションを適切に再利用する方法

私は今、ソケットアプリケーションをデバッグしています。これには、一貫して実行とシャットダウンが含まれます。私の問題は、実行してシャットダウンしてから再度実行すると、10048エラーコードが表示され、アドレスが既に使用されていることを示していることです。ソケット記述子を に設定しようとしましたが、アプリケーションを一貫して実行して閉じると、10048SO_REUSEADDRエラー コードが引き続き表示されます。

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

c - set socket オプションは、ソケット (IP_HDRINCL) で ICMP 要求にとってなぜそれほど重要なのですか?

ソケットプログラミングは初めてです

私はICMPリクエストプログラムを見ました。彼らsetsockoptはソケットに使用していました

int on = 1;

しかし、このステートメントを使用しなくても、プログラムは正しく実行されます。IP構造を含むこのソケットをカーネルに言及することがなぜそれほど重要なのですか?

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

c++ - setsockopt がエラー 10014 を返す

マルチキャスト グループでサービス ポートをアドバタイズする単純な UDP サーバーを作成しようとしていますが、マルチキャストを機能させるのに問題があります。Microsoft のドキュメントを調べてみて、コードの一部をコピーして貼り付けましたが、機能しません。問題のあるコードは次のとおりです。

どんな助けでも大歓迎です。