問題タブ [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.
sockets - BSD ソケットは、次の送信前に確認応答を待機しないように、sockopt オプションを設定します
独自の単純な raw TCP プロトコルを使用して、イーサネット経由で数キロバイトのデータを送信しようとしています。
標準の Windows 構成では、TcpAckFrequency = 1 でレジストリを変更しない限り、確認応答パケットを返す前に 2 つのパケットを受信する必要があります。この場合、1 つの受信パケットで確認応答を返すのに十分です。そうでない場合は、TcpDelAckTicks の後に ACK を取得します* デフォルトでは 100 = 200 ミリ秒 (これは別のレジストリ キーです)。これは、データを 1460 バイト未満のチャンクで送信すると問題になります。各チャンクは 200 ミリ秒後に確認応答を取得し、送信者はそれを待ってから次のパケットを送信するためです。1 つの解決策は、データを 1460 バイトより大きい単位で送信することです。これにより、実際には 2 つのパケットが送信され、ACK が受信されます。
しかし、より小さなパケットを送信したい場合はどうすればよいでしょうか? 次のパケットを送信する前に確認応答パケットを待機しないように、setsockopt を使用してソケットを構成する方法はありますか?
事前にどうもありがとうございました。
c++ - IP_TTL と IP_TOS を設定できない Setsockopt
UDP ソケットを定義しました
// 識別子 IP_TTL 未定義
// 識別子 SOL_IP と IP_TOS は未定義
コンパイル エラーが発生しました。いくつかの HeaderFile がありませんか
c# - ReuseAddress を true に設定すると、BeginReceive からのコールバックがないのはなぜですか? UDP
受信用の非同期コールバック関数を使用して、UDP 受信および送信機能用の C# ソケットを作成しています。シンプルですよね!すべてのしわをアイロンがけするのに時間がかかりましたが、うまくいきました...まあ、ポートを独り占めする限り!他のアプリケーションが同じポート番号を使用できるようにする必要があります。問題ありませんよね!そのためのオプション、ReuseAddress の SetSocketOption(...) があります...
ReuseAddress を true に設定すると、コールバック関数がヒットしなくなるのはなぜですか?
sockets - キープアライブ オプションを有効にして停止したクライアントを検出する方法
タイトルで述べたように、キープアライブ オプションを使用して、サーバー側で停止したクライアントを検出しています。接続された tcp ソケットでキープアライブを有効にするコード スニペットは、次のようになります。TCP_KEEPCNT、TCP_KEEPIDLE、TCP_KEEPINTVL などのキープアライブ動作を操作するその他のオプションは、デフォルトでシステムです。
サーバー側では、接続されたソケットで、サーバー スレッドが recv 呼び出しになり、クライアントがサーバーにコマンドを送信するのを待ちます。このコード スニペットは次のようになります。
クライアントが正常にシャットダウンすると、recv 呼び出しは 0 を返し、クライアントが終了したことを確認します。だから私の質問は、キープアライブがデッドクライアントを検出したときにrecvが返すものは何ですか? または、「get_last_sock_error」から読み取ることができるシステムエラー変数にエラーを設定し、クライアントが停止していることを確認します。ありがとう。
c++ - ソケットの IP_ADD_MEMBERSHIP、ソケットはユニキャストもリッスンしますか?
以下のコードを考えると、
マルチキャスト用に UDP ソケットをバインドしようとしています。
私はそれを特定のポートにバインドし、IP_ADD_MEMBERSHIP
リッスンするアドレスを設定しました。
私の質問: ソケットは、そのポートにバインドされたユニキャスト UDP パケットを受信しますか? もしそうなら、どうすればそれを防ぐことができますか?マルチキャストのみ受信したい。
c - set socket オプションは、ソケット (IP_HDRINCL) で ICMP 要求にとってなぜそれほど重要なのですか?
ソケットプログラミングは初めてです
私はICMPリクエストプログラムを見ました。彼らsetsockopt
はソケットに使用していました
int on = 1;
しかし、このステートメントを使用しなくても、プログラムは正しく実行されます。IP構造を含むこのソケットをカーネルに言及することがなぜそれほど重要なのですか?
c++ - setsockopt がエラー 10014 を返す
マルチキャスト グループでサービス ポートをアドバタイズする単純な UDP サーバーを作成しようとしていますが、マルチキャストを機能させるのに問題があります。Microsoft のドキュメントを調べてみて、コードの一部をコピーして貼り付けましたが、機能しません。問題のあるコードは次のとおりです。
どんな助けでも大歓迎です。