【ただの技術備忘録】【第5回】LinuxC、ソケットプログラミング〜解説編2〜
2.ソケットのアドレス
各ソケットドメインには独自のアドレス形式が必要。故に、ソケットにIPやプロトコルを割り当てる為の構造体が準備されている。AF_INETドメインではnetinet.hで定義されているsockaddr_in構造体を使用する。
#include <netinet/in.h> struct sockaddr_in { short int sin_family;//ドメイン指定 unsigned short int sin_port;//ポート指定 struct in_addr sin_addr;//IP指定 }; struct in_addr { unsigned long int s_addr; };
今回の場合、
server_address.sin_family = AF_INET; server_address.sin_addr.s_addr = inet_addr("127.0.0.1"); server_address.sin_port = 7743;
で、指定している。AF_INET(IPV4)で、IP127.0.0.1のポート7743、というソケット情報を「作成しただけ」の状態。この情報を、1で作ったソケットディスクリプタに命名するのだが、それは次回。厳密に言うとこの指定の仕方は拙いのだが(バイトオーダーの関係で動かない可能性がある)なぁに、かえって免疫がつく。というのは冗談で、一応同じマシンなら動くのでそこらへんは後ほど解説していく。