zoukankan      html  css  js  c++  java
  • socket

    NAME

      socket - create an endpoint for communication

    SYNOPSIS
      #include <sys/types.h>

      #include <sys/socket.h>

      int socket(int domain, int type, int protocol)

    DESCRIPTION

      socket()为通信创建一端点(endpoint)并且返回一个指向这个端点的文件描述符。成功调用返回的文件描述符将是当前未为该进程打开的最小编号的文件描述符。

        domain参数指定一个通信域(a communication domain)。这个参数选择将用于通信的协议族(protocol family)。这些协议族在<sys / socket.h>中定义。 当前的定义格式包括:

    Name Purpose
    AF_UNIX,AF_LOCAL Local communication
    AF_INET  
    AF_INET6  
    AF_IPX  
    AF_NETLINK  
    AF_X25  
    AF_AX25  
    AF_ATMPVC  
    AF_APPLETALK  
    AF_PACKET  
    AF_ALG  

      type参数指定通信语义。 当前定义的类型是:

             

    SOCK_STREAM SOCK_DGRAM SOCK_SEQPACKET SOCK_RAW SOCK_RDM SOCK_PACKET

       注意:某些套接字类型可能并非所有协议族都已经实现。

      

       protocol参数指定用于这个socket的特定协议。通常,在给定协议系列中,只有一个协议可以支持特定的套接字类型,在这种情况下,protocol参数可以指定为0。但是,可能存在许多协议,在这种情况下,必须以这种方式指定特定协议。有关如何将协议名称字符串映射到协议编号,请参见getprotoent(3)。

    RETURN VALUE

           成功后,将返回新套接字的文件描述符。如果出错,则返回-1,并正确设置errno

    ERRORS

    EACCES 拒绝创建一个指定类型(type)或者协议(protocol)的socket。
    EAFNOSUPPORT  
    EINVAL 未知协议或协议族不可用。
    EINVAL 无效的的tyep标示。
    EMFILE 已达到每个进程对打开文件描述符数量的限制。
    ENFILE 已达到打开文件总数的系统范围限制。
    ENOBUFS or ENOMEM 可用的内存不足。 只有释放足够的资源后才能创建套接字。
    EPROTONOSUPPORT 这个域(domain)不支持协议类型或指定的协议。

             

  • 相关阅读:
    NGINX+uWsgi部署Django项目
    centos7 docker启动服务,无法通过宿主机ip进行访问
    基于docker 搭建Prometheus+Grafana
    centos7安装MySQL5.7
    centos7下安装python7
    loadrunner27257问题解决办法
    学习Python+selenium自动化感想
    find_element和find_elements
    正则表达式
    Jdk自带的Windows性能监控工具JVM
  • 原文地址:https://www.cnblogs.com/iuyy/p/13379451.html
Copyright © 2011-2022 走看看