sockaddr_storage究竟是如何工作的?

时间:2016-08-06 06:32:59

标签: c sockets

我刚刚开始进入套接字编程。我不明白如何通过声明sockaddr_storage然后创建一个套接字listen(),所有传入的连接都会自动存储在sockaddr_storage中。如果你申报5 sockaddr_storage怎么办?

2 个答案:

答案 0 :(得分:3)

  

sockaddr_storage究竟是如何工作的?

sockaddr_storage是一种足以容纳任何支持协议的套接字地址的类型(IPv4为sockaddr_in,IPv6为sockaddr_in6,UNIX域为sockaddr_un,{ {1}}用于蓝牙等。)

  

我不明白如何通过声明sockaddr_storage然后创建一个套接字listen(),所有传入的连接都会自动存储在sockaddr_storage中。

那是因为他们没有。 您必须将sockaddr_bth传递给使用套接字地址填充它的函数,例如sockaddr_storageaccept()getsockname()等。

  

如果您申报5 sockaddr_storage怎么办?

然后你有5个getpeername()类型的变量。什么都不会发生。这就像你问“如果宣布5个整数怎么办?”你仍然需要以某种方式填充它们。

答案 1 :(得分:0)