Unix Network(2) 第五章 简单函数

2014-3-16

简单说明,不求甚解


(1)   int socket (int family, int type,int protocol) 

        若成功则为非负描述符(套接字描述符),若出错则为-1

        @ family : 协议族
             AF_INET       IPv4 协议

             AF_INET6     IPv6 协议

        @ type : 套接字类型

             SOCK_STREAM : 字节流套接字

             SOCK_DGRAM  :  数据报套接字

        @ protocol : 暂时设为0

(2)  int bind(int sockfd,const sockaddr * myaddr, socklen_t addrlen)

       若成功则为0,出错为-1

       @ myaddr : 指向特定于协议的地址结构的指针

            对于IPv4 来说 是 struct sockaddr_in    (netinet/in.h)

        bind 可以指定IP地址或端口,可以两者都指定,也可以都不指定。IPv4 通配地址有常值INADDR_ANY来指定。如,

        struct sockaddr_in servaddr;

        servaddr.sin_addr.s_addr = htonl(INADDR_ANY)      /*  wildcard */

     

       IPv4 : sockaddr_in

      

struct in_addr {
    in_addr_t   s_addr;     /* 32-bit IPv4 address */
                                           /* network byte ordered */
};

struct sockaddr_in {
  uint8_t               sin_len;          /* length of structure (16) */
  sa_family_t       sin_family;    /* AF_INET */
  in_port_t            sin_port;       /* 16-bit TCP or UDP port number */
  struct in_addr    sin_addr;     /* 32-bit IPv4 address */
  char                     sin_zero[8]; /* unused */

};

(3) int listen(int sockfd, int backlog)

      成功返回0,失败-1

(4) int accept(int sockfd, struct sockaddr *cliddr, socklen_t * addrlen)

      若成功则为非负描述符,若出错为-1

      返回值代表与客户的TCP链接



(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值