gpt4 book ai didi

sockets - 如果我从未宣布过工会,sin_addr怎么会成为工会?

转载 作者:行者123 更新时间:2023-12-03 12:08:05 25 4
gpt4 key购买 nike

在套接字编程中,如果我从未声明过sin_addr是一个联合,我的编译器怎么会知道呢?

server_address.sin_addr.s_addr = INADDR_ANY;



另外,在启动套接字时:

struct sockaddr_in server_address;



我的管理员理解“sockaddr_in”命令吗?它是可以更改的结构吗?

如果您能以新手能够理解的方式进行说明,将不胜感激。我编程不到一周。

最佳答案

使用一个不错的编译器,您可以跳入在其中声明它们的头文件中。

在我的机器上,使用arpa/inet.h(ymmv),

typedef unsigned int            __uint32_t;


#ifndef _IN_ADDR_T
#define _IN_ADDR_T
#include <machine/types.h> /* __uint32_t */
typedef __uint32_t in_addr_t; /* base type for internet address */
#endif /* _IN_ADDR_T */


/*
* Internet address (a structure for historical reasons)
*/
struct in_addr {
in_addr_t s_addr;
};

/*
* Definitions of bits in internet address integers.
* On subnets, the decomposition of addresses to host and net parts
* is done according to subnet mask, not the masks here.
*/
#define INADDR_ANY (u_int32_t)0x00000000


/*
* Socket address, internet style.
*/
struct sockaddr_in {
__uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};

您从哪里来阅读吗?

关于sockets - 如果我从未宣布过工会,sin_addr怎么会成为工会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57869319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com