地址族与数据序列

书上讲解了一些ipv4地址的概念,以及ipv6地址的概念。

又说了一些端口号的概念,以及端口号的作用。

但是还是很复杂的,直接理解我第一章节说的内容,每个概念只有一句话.但是这是建立在我对网络编程的了解基础上的.

下讲解了

mindmap
    root((sockadd_in))
        sin_family(sin_family)
            AF_INET(AF_INET)
            AF_INET6(AF_INET6)
            AF_Local(AF_Local)
        sin_port(sin_port)
            htons("htons(int)")
        sin_addr(sin_addr)
            s_addr(s_addr)
                inet_addr("inet_addr(char*)")

需要把sockaddr_in转化成struct sockaddr *才能使用bind()等函数.

网络字节序与地址的转换

每次创建服务器端socket都要输入IP地址会有些繁琐,此时可以使用如下的初始化地址信息

1struct sockaddr_in server_addr;
2char * serv_port = "8989";
3server_addr.sin_family = AF_INET;
4server_addr.sin_port = htons(atoi(serv_port));
5server_addr.sin_addr.s_addr = inet_addr(INADDR_ANY);