1.socket是一个应用编程的接口,它是一种特殊的文件描述符(对它执行IO的操作函数,比如read(),write(),close()等操作函数)
    2.socket代表着网络编程的一种资源

    socket的类型:
    流式套接字(SOCK_STREAM): 唯一对应着TCP
    提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。
    数据报套接字(SOCK_DGRAM): 唯一对应着UDP
    提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。
    原始套接字(SOCK_RAW):(对应着多个协议,发送穿透了传输层)
    可以对较低层次协议如IP、ICMP直接访问。

    image.png
    1.成对出现
    2.绑定IP + 端口
    3.一个文件描述符指向两个缓存区:一读一写