問題タブ [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.
c - OSX の getsockopt は正しくない値を返しますか?
次のプログラムを使用して、より大きな問題をデバッグしています。
OSX で同じプログラムを実行すると、getopt が 0 または 1 を返すことはありません。設定した optval の値は常に返されます。
私のプログラムには、私を逃れている明らかに間違った何かがあるに違いありません。
例 このプログラムを ./a.out 64.233.160.105 として実行しました
これが私が使用しているサンプルプログラムです。
c - ローカル ソケット オプション セットとソケット オプション セットへのポインター
単純なソケット パラメーターを持つ関数を作成し、そのソケット ( setsockopt()
) に別のオプションを設定するなどの基本的な命令をその関数内で実行し、関数が存在した後もオプションのままである場合、実際の違いは何ですか? または、ソケットに発生する実際の変更を保持するために、そのソケットへのパラメーターポインターを作成する必要があります。
それともこんな感じ?
struct、int、charなどにポインターを渡すことで、関数の実行後に値を変更できます。ポインターがないと、変更はその関数でのみローカルのままになりますが、グローバルには変更されません。
しかし、setsockopt
機能はどうですか?
select - setsockopt() と select() を使用して UDP タイムアウトを設定する
どちらも recvfrom() のタイムアウトを設定するために使用できることはわかっていますが、どちらが優れているのでしょうか? 直感的には、setsockopt は簡単に使用できるように見えますが、多くの例で select() が使用されていることがわかりました。私は単一のソケットのみを使用し、タイムアウトは送信時に再計算されます(Ubuntuを使用しています)。
sockets - setsockopt() が設定したタイムアウトを無効にする方法は?
私が開発しているプログラムでは、無期限にブロックするのsetsockopt()
を防ぐために、を使用してタイムアウトを設定しました。recvfrom()
タイムアウトを無効にするにはどうすればよいですか?
(私はUbuntuを使用しています)
c - Linux C プログラムで非特権ソケット (raw ではない) に TCP オプションを設定する
Linux C プログラムで非特権ソケット (raw ではない) で発信 TCP パケットに設定できる TCP オプションはどれですか? TCPヘッダーのTCPオプションを参照します。
http://linux.die.net/man/7/tcpを確認したので、今のところ追加/編集できます。
MSS、タイムスタンプ、ウィンドウ スケール、Sack、Fast Open (下記の回答を参照)
他のオプションを追加する方法はありますか? 特にマルチパスに興味がありますが、どのオプションも役に立ちます。
ありがとうございました!
c - ソケット バッファ サイズが増加しない
出力は -
現在のソケット バフ len = 41600
セットソケットの選択の成功
socket buff len = 41600 を設定した後。
受信バッファ サイズが増加していないように見えますが、これが発生する理由は何ですか?
前もって感謝します!
c++ - setsockopt() でタイムアウト オプションを指定すると、後続のリッスン エラーが発生する
現在、setsockopt()
次のコードを使用してオプションを指定しようとしています。
Notetv
は既に指定された timeval です。
最初のsetsockopt()
呼び出しだけを行うと、すべて正常に動作します。ただし、2 番目 (エラーを返さない) を追加すると、コードで指定された 2 番目の「リッスン エラー」が発生します。タイムアウト値の設定がこれに影響する理由がわかりません。誰か説明できますか?
指定されたコードの功績は認めません。ここのチュートリアルに示されているコードから変更されています: http://codebase.eu/tutorial/linux-socket-programming-c/