【ただの技術備忘録】【第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で作ったソケットディスクリプタ命名するのだが、それは次回。厳密に言うとこの指定の仕方は拙いのだが(バイトオーダーの関係で動かない可能性がある)なぁに、かえって免疫がつく。というのは冗談で、一応同じマシンなら動くのでそこらへんは後ほど解説していく。