問題タブ [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 - IP_MULTICAST_TTL と windows7
私のアプリケーションは、UDP ソケットを作成し、いくつかのオプションを設定しています。オプションの1つはIP_MULTICAST_TTL.
アプリケーションが Windows 7 で実行されていて、wireshark を使用してワイヤ上のトラフィックを観察すると、TTL が常に 1 であることがわかります。これは、setsockopt()
が何の影響も与えていないことを意味します (ただし、エラーは返されません)。
コードを掘り下げると、IP_MULTICAST_TTL
値は Windows 7 では 10、他の Windows バージョンでは 3 であることがわかりました。
Windows 7 で値を強制的に 3 にすると、setsockopt()
問題なく動作し、wireshark は正しい値を報告します。
次の記事を見つけました: http://support.microsoft.com/kb/257460そして、Winsock2.h の後に Ws2tcpip.h をインクルードしていること、および Ws2_32.lib に対してリンクしていることを確認します。
助言がありますか?
python - urllib2 で URL をロードするときに TCP_NODELAY フラグを設定するには?
Webページのロードにurllib2を使用しています。コードは次のとおりです。
設定するソケットのプロパティを取得するにはどうすればよいTCP_NODELAY
ですか?
通常のソケットでは、関数を使用します:
c++ - setsockopt パラメータ SO_RCVTIMEO でのブロッキングの意味
msdn linkから setsockopt を見ていました。パラメータSO_RCVTIMEOに出くわしました。その説明は「受信呼び出しをブロックするためのタイムアウトをミリ秒単位で設定します」です。ソケットリッスン操作はイベント駆動型であると思いました。つまり、カーネルがNICカードからフレームを排出すると、プログラムソケットに通知します。ブロッキングがすべてですか?
c - 元の送信元アドレスで http トラフィックを再生する
クライアントと Web サーバーを含むテストベッドを構築したいと考えています。ここで、ログに記録された http get 要求を Web サーバーに再生できます。そのため、元の送信元アドレスとポート番号を使用したリクエストで実際のトラフィックを正確にシミュレートすることを計画しています。
クライアントを構築するには、ソケット オプション IP_FREEBIND を使用して、任意の送信元アドレスとポート番号にバインドできることを願っています。この目的のための既知のコードはありますか? (私は車輪を再発明したくありません)このスレッドが示唆しているように、生のソケットを使用する必要がありますか?
どんな助けでも大歓迎です。
c - 「IP_TRANSPARENT」はこのスコープで宣言されていません
IP_TRANSPARENT ソケット オプションを使用しようとしています。しかし、このスコープでは「IP_TRANSPARENT」が宣言されていませんでした。そのコード (19) をコードで直接使用すると、「無効な引数」としてバインディング エラーが発生しました。このオプションをサポートするには、カーネルを再コンパイルする必要がありますか? その場合、カーネル 2.6.32 を使用します。カーネル パラメータ インターフェイスにオプションが見つかりませんでした。
何かご意見は?
ありがとう、
c - UDP ソケットで SO_RCVBUF を 1 に設定できますか?
何かが起こったときに、あるプロセスから別のプロセスにUDPソケットを介して1バイトのメッセージが送信されるシステムがあります。受信側では、このイベントが 1 回発生したか、12 回発生したか、100 万回発生したかは問題ではありません。
役に立たない recvfrom() 呼び出しを何度も行うのではなく、setsockopt を使用して SO_RCVBUF を 1 に設定することで、システムが最初のメッセージ以外のすべてを単純に無視するようにすることができるのではないかと考えました (メッセージが読み取られて別のメッセージが許可されるまで)。ただし、グーグルで検索すると、これが 100% 移植可能ではない可能性があるという証拠がいくつか見つかりました (システムによっては、最小サイズを静かに強制しているように見えますか?)。
だから、これを試す作業に入る前に、これがどれくらいうまくいくか知っている人がいるかどうか疑問に思っていました. これは Red Hat Linux の場合です。
python - Linuxでtcp受信ウィンドウを増やす
CでのTCP受信ウィンドウの設定とLinuxでのtcpdumpの操作に似ており、SO_RCVBUFの値の変更が機能しないのはなぜですか?、ubuntulinux2.6.32-45で初期tcp受信ウィンドウを5888より大きくすることができません
tcpdumpによると:
sysctl -a | grep net.*mem
言う:
接続に受信ウィンドウの制限を課す何か他のものがありますか?
linux - SO_BINDTODEVICE 仮想インターフェイスの失敗
マルチキャストを設定するためにインターフェイスにバインドする PTPDV2 (precision timing protocol) サーバーを実行しようとしています。
次の仮想インターフェイスがあります
現在、通常のインターフェイスへのバインドに問題はありませんが、仮想インターフェイスではエラーが発生します。
この問題を克服するには、いくつかの指針が必要です。ここで何か助けていただければ幸いです。
sockets - 「setsockopt SO_SNDBUF が tcp_connect() で失敗しました」
Web サービスを呼び出すクライアント gsoap プログラムを実装した C クライアントに問題があります。
Windows PC ではすべて正常に動作しますが、Linux ベースの POS デバイスでコードを発行すると、次のエラーが表示されます。
このエラーのデバッグはどこから始めるべきですか? 原因は何ですか?
返されるエラー番号は 2 です
エラーを生成するコード セクション: (stdsoap2.c 内)
linux - setsockopt() は EBUSY を返します
RAW ソケットを正常に開いたばかりで、以下の関数を使用してカーネル TX および RX リングをエクスポートしようとしています。ただし、setsockopt() は、カーネルにリングの 2 番目をエクスポートするように指示しようとすると、EBUSY (デバイスまたはリソースがビジー) を返します。つまり、以下のコードを 1 回実行すると正常に動作するため、最初のリング (TX または RX のいずれか) を取得できます。問題は、2 番目のリングをエクスポートしようとしたときに発生します (最初のリングが RX の場合は TX の場合、またはその逆の場合)。
アプリケーションは、mmap()ed メモリを使用する TX と RX の両方に同じソケットを使用できませんか? つまり、TX 用に 1 つのソケットと RX 用に 1 つのソケットを開く必要がありますか?
}