首页 > 试题广场 >

在网络通信中生成一个socket描述符,需要使用的参数有()

[不定项选择题]
在网络通信中生成一个socket描述符,需要使用的参数有(      )。
  • IPPRTO_UDP
  • SOCK_DGRAM
  • AF_INET
  • SOCK_PORT

对于socket(AF_INET, SOCK_RAW, IPPROTO_IP),其原型为

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

1 参数protocol用来指明所要接收的协议包,如果是象IPPROTO_TCP(6)这种非0、非255的协议,当操作系统内核碰到ip头中protocol域和创建socket所使用参数protocol相同的IP包,就会交给这个raw socket来处理,因此,一般来说,要想接收什么样的数据包,就应该在参数protocol里来指定相应的协议。当内核向此raw socket交付数据包的时候,是包括整个IP头的,并且已经是重组好的IP包。

2 如果protocol是IPPROTO_RAW(255),这时候,这个socket只能用来发送IP包,而不能接收任何的数据。发送的数据需要自己填充IP包头,并且自己计算校验和。

3 对于protocol为0(IPPROTO_IP)的raw socket。用于接收任何的IP数据包。其中的校验和和协议分析由程序自己完成。

发表于 2021-06-02 10:24:28 回复(0)
int socket(int domain, int type, int protocol);

socket函数的三个参数分别为:

  • domain:即协议域,又称为协议族。常用的协议族有AF_INET、AF_INET6、AF_LOCAL、AF_ROUTE等等。协议族决定了socket的地址类型,在
  • type:指定socket类型。常用SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等
  • protocol:就是指定协议。常用IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC
发表于 2021-07-18 22:32:58 回复(0)