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

python - Windows の setsockopt は壊れていますか?

一部のポートを再利用できるようにしたいので、次のコードでソケットにsetsockoptを使用しています。

ただし、これは実際には機能しません。バインドエラーも発生していませんが、サーバーソケットが応答していません(開始しているように見えますが、接続しようとしても選択ループに入りません)。この動作は、スクリプトが予期せず終了した場合に発生し、サーバーがリッスンしているポートを変更すると、すべてが再び機能します。アドバイスをいただけますか?

編集: ソケットの名前を sock に変更しました。これは、このコード スニペットに付けた名前です。

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

c++ - win32 で IP_HDRINCL を setsockopt 関数に設定する

Win32 で raw ソケットと戦っていて、行き詰まりました。soetsockopt 関数で 10022 エラー (無効な引数) が返されましたが、正しい引数を渡したと思います... もちろん間違っています u_u'

私のコードに何が起こるか知っている人はいますか?

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

linux - 他のアプリによって作成された既存のソケットのソケットオプションを参照してください。

特定のソケットオプションが既存のソケットに設定されているかどうかをテストしたいと思います。つまり、あなたが見ることができるほとんどすべてのもの:

既存のソケット、つまり他のプロセスによって作成されたソケットのオプションを確認する方法を知っている人はいますか?悲しいかな、Pythonソケットプログラミングについて読んだほとんどすべてのドキュメントは、新しいソケットの作成に関するものです。

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

linux - MacOSX / Ubuntuでソケットを再バインドするにはどうすればよいですか?二度目

私は次のコードを持っています:

close()を使用してサーバーを閉じると、同じポートでサーバーを再度開くことができなくなります。なんで?ポートを変更するか、システムを再起動する必要があります。これはUbuntuとMacOSXでのみ発生します。Windowsでは、この問題は発生しません。

:: bind()関数でエラーが発生しました。ソケットを2回再バインド()することはできません。

再バインドするにはどうすればよいですか?

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

c - C で TCP 受信ウィンドウを設定し、Linux で tcpdump を操作する

2.6.9-55.ELsmp、x86_64 を実行している Linux ボックスを実行しています。

C を使用して setsockopt() 関数を使用して TCP 受信ウィンドウを設定しようとしています。次のことを試します。

上記のコード セグメントは、サーバーからデータを受信するクライアント プログラムにあります。プログラムを起動して tcpdump 出力を受信して​​観察すると、次のようなウィンドウ ネゴシエーションが観察されます。

クライアント プログラムが実際には、クライアント プログラムで設定したものとは異なるウィンドウをネゴシエートしていることがわかります。ただし、Steven のテキスト ("TCP/IP Illustrated, Volume 1") セクション 20.4 をどのように解釈できるかから、私が使用する setsockopt() 呼び出しを使用して、セクション 20.4 の 2 番目のブロック引用で彼が参照しているものに影響を与えると思います (上記を参照)。 )。

どこが間違っているのかを理解したいです。

おそらく、スティーブンスが言っていることの私の解釈は間違っています。その場合、受信バッファサイズの正しい設定方法を教えていただけないでしょうか? 私の混乱の証拠として、http://linux.die.net/man/7/tcp にある Linux TCP ソケットのマニュアル ページを参照してください(SO_RCFBUF のコメントを参照)。

この話で私が見逃しているものは何ですか?受信バッファーのサイズを制御するには (そして tcpdump の出力に表示するにはどうすればよいですか?) ここで、ソケット オプション SO_RCFBUF の設定を暗示していることに注意してください。それが SYN のウィンドウ ネゴシエーションに表示されることを理解しています。

どんな入力でも大歓迎です。

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

c - setsockopt (sys/socket.h)

setsockopt のプロトタイプは次のとおりです。

以下はすべて正しいですか?そうでないのはどれですか?
a.)

b.)

c.)

d.)

0 投票する
7 に答える
12709 参照

networking - IPV6_V6ONLY フラグを追加した動機は何ですか?

IPv6 ネットワークでは、IPV6_V6ONLY フラグを使用して、ソケットが IPv6 のみを使用し、特に IPv4 から IPv6 へのマッピングがそのソケットに使用されないようにします。多くの OS では IPV6_V6ONLY はデフォルトで設定されていませんが、一部の OS (Windows 7 など) ではデフォルトで設定されています。

私の質問は、このフラグを導入した動機は何ですか? IPv4 から IPv6 へのマッピングに問題があり、それを無効にする方法が必要だったのでしょうか? IPv4 から IPv6 へのマッピングを使用したくない場合、IPv4 にマッピングされた IPv6 アドレスを指定することはできないように思えます。ここで何が欠けていますか?

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

c - Error "No such device" in call setsockopt when joining multicast group

I have a code in which send multicast datagrams. A critical piece of code:

#xA;

Sometimes program executes successfully (at this moment I have IP - 192.168.80.122). I can capture my multicast datagram by wireshark. That's all OK.

But if I change my IP to 192.168.1.2, I get error when is called

#xA;

And I can't even capture my multicast packet. Nothing is sent. Where's bug?