首页 > 代码库 > socket

socket

http://zh.wikipedia.org/wiki/Berkeley%E5%A5%97%E6%8E%A5%E5%AD%97

socket本身是建立套接字所使用到的一个函数;

  • socket() 创建一个新的确定类型的套接字,类型用一个整型数值标识(文件描述符),并为它分配系统资源。
  • socket() 为通讯创建一个端点,为套接字返回一个文件描述符

     socket() 有三个参数:

    • domain 为创建的套接字指定协议集。 例如:
      • AF_INET 表示IPv4网络协议
      • AF_INET6 表示IPv6
      • AF_UNIX 表示本地套接字(使用一个文件)
    • type 如下:
      • SOCK_STREAM (可靠的面向流服务或流套接字)
      • SOCK_DGRAM (数据报文服务或者数据报文套接字)
      • SOCK_SEQPACKET (可靠的连续数据包服务)
      • SOCK_RAW (在网络层之上的原始协议)
    • protocol 指定实际使用的传输协议。 最常见的就是IPPROTO_TCPIPPROTO_SCTPIPPROTO_UDPIPPROTO_DCCP。这些协议都在<netinet/in.h>中有详细说明。 如果该项为“0”的话,即根据选定的domain和type选择使用缺省协议。

    如果发生错误,函数返回值为-1。 否则,函数会返回一个代表新分配的描述符的整数。

    原型:
    int socket(int domain, int type, int protocol);

      

    Socket实质上提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。

socket