结构是什么;servaddr中的sockaddr_,clientaddr&引用;什么意思?

结构是什么;servaddr中的sockaddr_,clientaddr&引用;什么意思?,c,sockets,C,Sockets,servaddr、cliaddr中的结构sockaddr\u 我是socket编程的新手。 在c语言的socket编程中,这个语句是什么意思? 我们是否在中创建名为sockaddr\u的结构,以及servaddr和cliaddr的成员?为什么没有提到他们的数据类型 在c语言的socket编程中,这个语句是什么意思 它在中声明了两个类型为struct sockaddr\u的未初始化变量 我们是否在中创建名为sockaddr\u的结构 不可以。必须已经定义它来声明变量,否则您的程序格式不正确 ser

servaddr、cliaddr中的结构sockaddr\u
我是socket编程的新手。
在c语言的socket编程中,这个语句是什么意思?
我们是否在中创建名为
sockaddr\u的结构,以及
servaddr
cliaddr
的成员?为什么没有提到他们的数据类型

在c语言的socket编程中,这个语句是什么意思

它在
中声明了两个类型为
struct sockaddr\u的未初始化变量

我们是否在
中创建名为
sockaddr\u的结构

不可以。必须已经定义它来声明变量,否则您的程序格式不正确

servaddr
cliaddr
是成员吗

没有

为什么没有提到他们的数据类型

是的。查看第一个问题的答案

在c语言的socket编程中,这个语句是什么意思

它在
中声明了两个类型为
struct sockaddr\u的未初始化变量

我们是否在
中创建名为
sockaddr\u的结构

不可以。必须已经定义它来声明变量,否则您的程序格式不正确

servaddr
cliaddr
是成员吗

没有

为什么没有提到他们的数据类型


是的。请参阅第一个问题的答案。

在Unix套接字中,header
netinet/In.h
中定义了一个
struct
类型
sockaddr\u,如下所示:

struct sockaddr_in {
    short            sin_family;   // e.g. AF_INET, AF_INET6
    unsigned short   sin_port;     // e.g. htons(3490)
    struct in_addr   sin_addr;     // see struct in_addr, below
    char             sin_zero[8];  // zero this if you want to
};

struct in_addr {
    unsigned long s_addr;          // load with inet_pton()
};
(参考号:)

您的
servaddr
cliaddr
是sockaddr\u in-type结构的名称。它们都有(在Unix中,至少)四个成员(
short sinu family
等)。(其中一个成员是
struct
type
in_addr
称为
sin_addr
,它在几行之后定义为一个成员
无符号长s_addr
。结构只有一个成员是有原因的,您也可以在stackoverflow中找到解释。)


如果您想在中使用sockaddr#u,则必须包含
netinet/in.h
的Windows等效项(除非您自己定义了结构)。

在Unix套接字中,header
netinet/in.h
中定义了
结构类型
sockaddr#u,类似这样:

struct sockaddr_in {
    short            sin_family;   // e.g. AF_INET, AF_INET6
    unsigned short   sin_port;     // e.g. htons(3490)
    struct in_addr   sin_addr;     // see struct in_addr, below
    char             sin_zero[8];  // zero this if you want to
};

struct in_addr {
    unsigned long s_addr;          // load with inet_pton()
};
(参考号:)

您的
servaddr
cliaddr
是sockaddr\u in-type结构的名称。它们都有(在Unix中,至少)四个成员(
short sinu family
等)。(其中一个成员是
struct
type
in_addr
称为
sin_addr
,它在几行之后定义为一个成员
无符号长s_addr
。结构只有一个成员是有原因的,您也可以在stackoverflow中找到解释。)

如果要在中使用sockaddr#u,则必须包含
netinet/in.h
的Windows等效项(除非您自己定义结构)