套接字类,表示一个套接字对象。

对于套接字类,需要关注以下属性:

  1. 文件描述符
  2. 地址类型(AF_INET, AF_INET6等)
  3. 套接字类型(SOCK_STREAM, SOCK_DGRAM等)
  4. 协议类型(这项其实可以忽略)
  5. 是否连接(针对TCP套接字,如果是UDP套接字,则默认已连接)
  6. 本地地址和对端的地址

套接字类应提供以下方法:

  1. 创建各种类型的套接字对象的方法(TCP套接字,UDP套接字,Unix域套接字)
  2. 设置套接字选项,比如超时参数
  3. bind/connect/listen方法,实现绑定地址、发起连接、发起监听功能 
  4. accept方法,返回连入的套接字对象
  5. 发送、接收数据的方法
  6. 获取本地地址、远端地址的方法
  7. 获取套接字类型、地址类型、协议类型的方法
  8. 取消套接字读、写的方法

以下是Socket类的继承关系图: