• 套接字选项
  • 流套接字
  • 数据报套接字
    函数 描述
    [[socket socket]] 创建一个套接字描述符
    [[socketpair socketpair]] 创建一个套接字偶对
    [[shutdown shutdown]] 断开套接字连接
    [[close close]] 销毁套接字

    套接字选项

    函数 描述
    [[getsockopt sockopt]]
    [[setsockopt sockopt]]

    适用于流式套接字和数据报套接字

    流套接字

    通信双方称为对等套接字,请求连接的客户端套接字称为主动套接字,等待连接的服务端套接字为被动套接字。

    一个套接字开始时是主动的,在调用了listen()之后才变成被动的。只有主动套接字才可以用于connect(),只有被动套接字才可以用accept()。

    函数 描述
    [[bind bind]] 允许服务进程给予套接字一个地址并建立连接的一方
    [[connect connect]] 客户进程调用。完成三次握手
    [[accept accept]] 客户进程完成connect()后,服务进程用该函数完成连接
    [[listen listen]] 创建一个保存连接请求的侦听队列
    [[getsockname getsockname]] 连接建立后,获取本地套接字地址
    [[getpeername getpeername]] 连接建立后,获取与本地套接字连接的对等套接字地址
    [[send send]] 向已连接的套接字发送数据
    [[recv recv ]] 从已连接的套接字接收数据

    数据报套接字

    函数 描述
    [[recvfrom recvfrom]] 接收数据报
    [[sendto sendto]] 发送数据报

    recvfrom和sendto也可以用于流式套接字,但是很少这样用