Linux 网络编程

网络模型与协议

 注:一下内容为传输层TCP/UDP上的Linux Socket编程

套接字Scoket编程

什么是套接字呢?

一个接口和不同的数据源

费曼:计算机好比人,而socket套接字好比邮箱,两个人通过邮箱来交流,都把信息(数据)都发到邮箱(socket)里,然后人再从邮箱里读取信息。

套接字地址结构:在linux/socket.h中定义

结构struct sockaddr 定义了一种通用的套接字地址

#include<linux/scoket.h>
struct sockaddr{
    unsigned short sa_family;  //套接字的协议族的类型 AF_xxx;
    char sa_data[14]; //14字节的协议地址
};

每种协议族都有自己的协议地址格式,TCP/IP协议族的地址格式为结构体 struct  sockaddr_in

#include<netinet/in.h>
struct sockaddr_in{
    unsigned short sin_family;      //地址类型
    unsigned short int sin_port;    //端口号
    struct in_addr sin_addr;        //ip地址
    unsigned char sin_zero[8];      //填充字节
};

struct in_addr{
    unsigned long s_addr;
};        
    

TCP/IP协议值为:AF_INET

原文地址:https://www.cnblogs.com/alex-gc/p/11143961.html