[zz]AF_INETとPF_INETの微妙な違い
1289 ワード
http://hi.baidu.com/%B1%D5%C4%BF%B3%C9%B7%F0/blog/item/deddb9ef51222e4578f0551d.html
2009-09-28 11:38
ネットワークプログラムを書く時、TCP socketを作ります。 sock=socket(PFuINET、SOCK__STREAM、0)その後、ローカルアドレスをバインドするか、リモートアドレスを接続するときは、sockaddr_を初期化する必要があります。in構造であり、アドレス・ファミリーを指定する場合はAF_に設定するのが一般的である。INETは、IPを使います。
関連ヘッダの定義:AF=Address Family PF=Protocol Family AF_INET= PF_INET
だからwindowsの中でAFをします。INETとPF_INETは全く同じです Unix/Linuxシステムでは、バージョンによって差があります。BSDに対してはAFで、POSIXに対してはPFです。
理論的にsocketを作る時は指定協議です。PF_を使うべきです。xxxxは、住所を設定する時AF_を使うべきです。xxxxです。もちろんAF_INETとPF_INETの値は同じです。混ぜても大丈夫です。
2009-09-28 11:38
ネットワークプログラムを書く時、TCP socketを作ります。 sock=socket(PFuINET、SOCK__STREAM、0)その後、ローカルアドレスをバインドするか、リモートアドレスを接続するときは、sockaddr_を初期化する必要があります。in構造であり、アドレス・ファミリーを指定する場合はAF_に設定するのが一般的である。INETは、IPを使います。
関連ヘッダの定義:AF=Address Family PF=Protocol Family AF_INET= PF_INET
だからwindowsの中でAFをします。INETとPF_INETは全く同じです Unix/Linuxシステムでは、バージョンによって差があります。BSDに対してはAFで、POSIXに対してはPFです。
理論的にsocketを作る時は指定協議です。PF_を使うべきです。xxxxは、住所を設定する時AF_を使うべきです。xxxxです。もちろんAF_INETとPF_INETの値は同じです。混ぜても大丈夫です。
socketpair socket domain AF_UNIX,AF_LOCAL,AF_INET,PF_UNIX,PF_LOCAL,PF_INET.
AF_UNIX=AF_LOCAL, PF_UNIX=PF_LOCAL, AF_LOCAL=PF_LOCAL, AF_INET=PF_INET.
** : socketpair socket domain , PF_LOCAL ,
, AF_LOCAL.
:
z = socket(PF_LOCAL, SOCK_STREAM, 0);
adr_unix.sin_family = AF_LOCAL;