socket

socket() 函数是用于创建套接字(Socket)的基础系统调用之一。套接字是网络通信的基本结构,用于在不同主机之间进行数据传输。socket() 函数返回一个文件描述符(file descriptor),这个描述符代表了新创建的套接字。

函数原型

cpp
复制代码
int socket(int domain, int type, int protocol);

参数说明

  1. domain(协议族):

    • 指定使用的通信协议族,也就是套接字的地址类型。常用的选项包括:
      • AF_INET: 表示使用 IPv4 地址。这个是最常用的协议族。
      • AF_INET6: 表示使用 IPv6 地址。
      • AF_UNIXAF_LOCAL: 用于本地通信(同一台主机上的进程间通信)。
  2. type(套接字类型):

    • 指定套接字的类型,决定了通信的行为方式。常用的选项包括:
      • SOCK_STREAM: 提供面向连接的稳定数据传输,即流式套接字。通常与 TCP 协议配合使用。
      • SOCK_DGRAM: 提供无连接的数据报服务,即数据报套接字。通常与 UDP 协议配合使用。
      • SOCK_RAW: 提供原始网络协议访问,通常用于需要直接访问 IP 层的应用。
  3. protocol(协议):

    • 指定使用的具体协议。通常在指定

      domain
      

      type
      

      后,这个参数可以设置为

      0
      

      ,表示使用默认协议。

      • IPPROTO_TCP: 用于 TCP 协议(当 typeSOCK_STREAM 时)。
      • IPPROTO_UDP: 用于 UDP 协议(当 typeSOCK_DGRAM 时)。
      • 0: 自动选择与 type 对应的默认协议。
posted @ 2024-08-30 22:17  悲三乐二  阅读(20)  评论(0)    收藏  举报