Linux-socket编程接口介绍

1、建立连接

(1)、socket。socket函数类似于open,用来打开一个网络连接,如果打开成功则返回一个网络文件描述符(int类型),之后我们操作这个网络连接都可以通过这个网络文件描述符。

(2)、bind。把本地的IP地址和我们的socket绑定起来

(3)、listen。 监听

(4)、connect 。连接

2、表示IP地址相关数据结构

(1)、都定义在 netinet/in.h

(2)、struct  sockaddr,这个结构体是网络编程接口中用来表示一个IP地址的,注意这个IP地址是不区分IPv4和IPv6d。(或者说是兼容IPv4和IPv6)。

(3)、typedef  uint32_t   in_addr_t;        网络内部用来表示IP地址的类型

(4)、struct   in_addr

           {

             in_addr_t    s_addr;

           }

(5)、struct  sockaddr

这个结构体是Linux的网络编程接口中用来表示IP地址的标准结构体,bind、connect等函数中都需要这个结构体,这个结构体是兼容IPv4和IPv6的。在实际编程中这个结构体会被一个struct  sockaddr_in或者一个structaddr_in6所填充。

(6)、struct  sockaddr_in

            {

    _SOCKADDR_COMMON(sin_);

    in_port_t    sin_port;

    struct   in_addr   sin_addr;

    unsigned  char  sin_zero[sizeof(struct  sockaddr) -

                                                      __SOCKADDR_COMMON_SIZE  -

               sizeof  (in_port_t) -

                                                      sizeof (struct  in_addr)];

               }

3、辅助型函数

(1)、inet_aton、inet_addr、inet_ntoa

(2)、inet_ntop(网络型参数转换为点分十进制)、inet_pton(点分十进制转换为网络型参数)

 

posted @ 2019-08-12 12:28  志瞳道合  阅读(558)  评论(0编辑  收藏  举报