首页 百科知识 有关的数据结构

有关的数据结构

时间:2022-10-09 百科知识 版权反馈
【摘要】:一个套接字的连接状态可以有以下几种:套接字是空闲的,还没有进行相应的端口及地址的绑定;还没有连接;正在连接中;已经连接;正在解除连接。 sa_family_t sa_family;  /* address family, AF_xxx */ char   sa_data[14];  /* 14 bytes of protocol address*/

3.4.1 有关的数据结构

(1)表示套接字的数据结构struct socket

struct socket

{

 socket_state state;    /* 指明套接字的连接状态*/

 unsigned long flags;

 struct proto_ops ops;  /* 指明可对套接字进行的各种操作 */

 struct inode inode;   /* 指向sockfs文件系统中的相应inode */

 struct fasync_struct *fasync_list; /*异步唤醒队列*/

 struct file *file;    /* 指向sockfs文件系统中的相应文件*/

 struct sock sk;    /*指向特定协议族的套接字对象。 */

 wait_queue_head_t wait;

 short type;

 unsigned char passcred;

};

一个套接字的连接状态可以有以下几种:套接字是空闲的,还没有进行相应的端口及地址的绑定;还没有连接;正在连接中;已经连接;正在解除连接。

(2)描述套接字通用地址的数据结构struct sockaddr

struct sockaddr{

 sa_family_t sa_family;  /* address family, AF_xxx */

 char   sa_data[14];  /* 14 bytes of protocol address*/

};

(3)描述因特网地址结构的数据结构struct sockaddr_in(这里局限于IP4)

struct sockaddr_in

{

 __SOCKADDR_COMMON (sin_); /* 描述协议族 */

 in_port_t sin_port;    /* 端口号 */

 struct in_addr sin_addr;  /* 因特网地址 */

 /* Pad to size of `struct sockaddr'. */

 unsigned char sin_zero[sizeof (struct sockaddr) –

      __SOCKADDR_COMMON_SIZE –

      sizeof (in_port_t) –

      sizeof (struct in_addr)];

 };

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈