Linux 网络编程

本文深入解析了Linux下Socket编程的基本概念,包括套接字的作用、结构定义及其在TCP/IP协议中的应用。通过类比,将复杂的网络通信过程形象地解释为通过邮箱交换信息的过程,使读者能够直观理解套接字在不同数据源之间的桥梁作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络模型与协议

 注:一下内容为传输层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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值