bind()とaccept()を使用すると、2番目のパラメータで構造体のサイズを指定できます。しかし、私は構造体全体のサイズが渡されているのを見ただけです。なぜあなたはサイズを指定するのですか?別の番号を使用する場合はありますか?なぜstructのサイズを指定できるのですか?
1
A
答えて
0
サイズは、実装、ソケットおよび/またはプラットフォームのタイプに依存する可能性があります。だから、コールでこのサイズを渡すと、余分なフィールドやパディングが使用されていても、同じコードが異なるプラットフォームで動作します。 sockaddr
構造体の
1
サイズは、IPv4またはIPv6を使用する場合に応じて、例えば、異なる場合があります。
3
異なるソケットプロトコルファミリは、構造の異なる種類を使用しています。 IPv6アドレスではなく構造を利用するのに対し、例えば、IPv4アドレスを使用して、TCPとUDPソケットが28バイトであり、サイズは16バイトであるsockaddr_in
構造を利用します。 IPv4の、UNIX、IPv6のようなソケットアドレスの種類を、受け入れるようにオーバーロードを貧乏人の機能:
0
これは歴史的な理由によるものです。詳細は、page 68 of UNIX Network Programming: The sockets networking APIを参照してください。これらは、カーネル・モードとカーネルのアドレス空間で実行するシステムコール、であり、カーネルはそれ以外の場合はカーネルアドレス空間とユーザアドレス空間の間でコピーするデータの量を把握していないので、
1
サイズが指定されています。たとえば、IPv4またはIPv6のアドレス構造を使用しているかどうかはわかりません。
関連する問題
- 1. なぜ物理メモリのサイズを超えるヒープサイズを指定できますか?
- 2. なぜcでundefined structを使用できるのですか
- 3. structを使ってシリアライザを準備できないのはなぜですか?
- 4. DynamicMethodをstructインスタンスにバインドできないのはなぜですか?
- 5. なぜKotlinでvar/valループを指定できないのですか?
- 6. なぜこれを不変の `struct`にすることができますか?
- 7. Yahoo Image Search APIで画像サイズを指定できますか?
- 8. なぜstructのこのリストでフィールドに値を割り当てることができないのですか?
- 9. Javaのレイアウトスイングのサイズを指定する
- 10. Javascriptで.lengthの後にno()を指定するのはなぜですか?
- 11. ビットマップのサイズをAndroidで指定されたサイズに減らす
- 12. structを直接割り当てることができないのはなぜですか?
- 13. structとstructの型をtypedefするのはいつですか?
- 14. struct定義のstructへのポインタを使う価値はいつですか?
- 15. MYDファイルのサイズがなぜ大きいのですか?
- 16. 背景画像プロパティを指定するときにCSSでurl()が必要なのはなぜですか?
- 17. Tkinter Text Widgetのサイズをピクセル単位で指定しますか?
- 18. CSSフォントプロパティで2つのサイズを指定していますか?
- 19. なぜマクロに2層の間接指定が必要なのですか?で
- 20. なぜUILabelのテキストプロパティを設定できないのですか?
- 21. Html.Helpersを使用してASP.NET MVCフォームで `name`属性を指定できないのはなぜですか?
- 22. 変数のアドレスをレジスタにコピーするのではなく、ASMで指定するのはなぜですか?
- 23. HTMLテーブルのセルの幅と高さを指定できないのはなぜですか?
- 24. なぜC++のprintf関数で型指定子を指定する必要がありますか?
- 25. IEnumerable <struct>をIEnumerable <object>としてキャストできないのはなぜですか?
- 26. 64ビットDelphiでネストされたローカル関数にアドレスを指定できないのはなぜですか?
- 27. CodeSnifferが--ignore指定のフォルダを除外しないのはなぜですか?
- 28. なぜnumpyは異なるサイズの配列を追加できますか?
- 29. 私のフラスコユニットテストで、指定したときに一時ファイルデータベースを使用しないのはなぜですか?
- 30. このSocketクラスにコンストラクタ引数を指定できないのはなぜですか?
UNIXドメインソケット対tcpソケット対... – bmargulies