私は最近、Linuxソケットプログラミングを研究していましたが、そのコンセプトはまだ渦巻いており、私の頭の中で不安定です。誰かが、socket()
とsocketpair()
への引数domain
の理解を確認したり修正したりすることができますか?ソケット通信が厳密に同じコンピュータ内にあることを希望する場合はPF_LOCAL
(またはPF_UNIX
)を選択し、ソケット通信の場合はPF_INET
を選択します。別のコンピュータの間にいる - 正しいのですか?socket()とsocketpair()のドメイン引数
1
A
答えて
1
いいえ、使用する通信ドメインです。 socket
については、man pageを参照してください。たとえば、AF_INET
はv4インターネットプロトコルを意味し、AF_INET6
はv6インターネットプロトコルを意味し、AF_APPLETALK
はAppleTalkを意味します。ほとんど確実にAF_INET
またはAF_INET6
が必要です。
あなたが通信する他のプログラムが同じマシンにあるかどうかは、インターネットプロトコルを使用してローカルホストとうまくやりとりすることができるため、本当に関連していないかどうか。
ただし、インターネットドメインプロトコルの使用に伴うパフォーマンスの低下はわずかです。アプリケーションがのみと同じマシン上の他のアプリケーションと接続する場合は、AF_LOCAL/AF_UNIX
ドメインを使用する方が高速で、ソケット上のファイルレベルのセキュリティ制御などのいくつかの追加の利点があります。あなたがそのルートに行くならば、それを変更せずに異なるコンピュータ間であなたのコードを使用することができないことにちょうど注意してください。
この選択肢の長所と短所については、hereを参照してください。
関連する問題
- 1. boost asio udp socket connect(IPv6)の無効な引数
- 2. socket.ioのsocket変数とは何か
- 3. ベストプラクティス:Socketを引数として取り込むメソッドをユニットテストしますか?
- 4. socketpairを使用したときのSO_SNDBUFの動作
- 5. socketとsetSoTimeout()
- 6. boost :: asio :: ip :: tcp :: socket :: cancelとsocket :: closeの違い
- 7. boost :: asio :: ssl :: stream <boost :: asio :: ip :: tcp :: socket>をboost :: asio :: ip :: tcp :: socket型の引数として受け入れる方法
- 8. linuxのsocket()関数の実装
- 9. boost :: asio :: ip :: tcp :: socket :: cancel()とsocket :: close()を使用する
- 10. Pythonのデフォルトの引数と引数名
- 11. c socket()関数の型とプロトコルの違いは何ですか?
- 12. Android Socket Ioとasp.netサーバー
- 13. 修正コードsocket ioとknockout
- 14. pythonソケットサーバーとjava android socket - フリーズアプリケーション
- 15. Socketクラスのエラー
- 16. 複数のドメイン
- 17. ドメイン名とドメイン名のみ
- 18. 関数の引数:引数として上限クラスと親クラス?
- 19. nginxのセットアップWordPress複数のドメインとサブドメイン
- 20. Socket.io、socket.set()とsocketプロパティの違いは?
- 21. systemd .socketファイルのConditionPathExists
- 22. f.apply(ヌル、引数)とf(引数)
- 23. Cookie認証と複数のドメイン
- 24. 複数のドメインとサブドメイン(laravel 5)
- 25. SafariとChromeでドメイン間のリクエストを許可しますか?サーバーの応答とコマンドラインの引数
- 26. C - 可変数の引数とコマンドライン引数を持つ関数
- 27. 複数のドメイン名
- 28. .htaccess複数のドメイン
- 29. 複数ドメインのドメインレベルセッションクッキー
- 30. Nginx複数のドメイン
この場合、 'PF_LOCAL'ドメインの目的は何ですか?いつ使用するべきですか? (私の読書資料は 'socket()'の引数として 'PF_ *'を選び、 'struct sockaddr_ *'ファミリに割り当てられた値として 'AF_ *'を選ぶと言っています) - しかし、私は 'PF_ *'現在一般的に 'AF_ * 'に等しい。 – StoneThrow
@StoneThrowこれを参照してくださいhttps://stackoverflow.com/questions/22288206/unix-sockets-af-local-vs-af-inet –
私はあなたが効果的に地元の通信は、 PF_LOCAL'または 'PF_INET'を使用しますが、後者を使用するとパフォーマンスが低下し、非ローカル通信は' PF_INET'を使用して行う必要があります - そうですか?それは私の質問では、申し訳ありませんが、私は可能な限り明確に表現していないことを意味したものです。 – StoneThrow