套接字简介
套接字是通信端点的一个抽象,套接字描述符和文件描述符一样是一个索引下标,普通文件在操作时通过open打开文件初始化文件结构体,返回文件描述符,当需要读写操作时操作系统通过文件描述符找到,描述文件的结构体,然后通过结构体中提供的信息进行操作,套接字描述符,通过socket函数调用进行初始化创建struct file 结构体和 struct socket结构体,当需要进行操作时,通过文件描述符,找到struct file结构体中的private_data 指针找到struct socke结构体然后找到const struct proto_ops*ops这个指针指向结构体对应的操作。
涉及到的结构体定义
struct files_struct
struct file
struct inode
struct socket
struct proto_ops
套接字类型
常见的TCP/IP协议的套接字有三种
- 流式套接字(SOCK_STREAM):提供面向连接的可靠数据传输,其传输方式为面向字节流传输,通过TCP即传输控制协议进行传输控制
- 数据报套接字(SOCK_DGRAM):提供了一种无连接的服务,其传输方式为面向数据报传输,使用UDP协议进行数据的传输,该服务并不能保