永发信息网

SOCKADDR_IN的基本结构

答案:1  悬赏:0  手机版
解决时间 2021-11-23 15:07
  • 提问者网友:动次大次蹦擦擦
  • 2021-11-23 07:03
SOCKADDR_IN的基本结构
最佳答案
  • 五星知识达人网友:行路难
  • 2021-11-23 07:49
在windows/linux下有下面结构:
sockaddr结构
struct sockaddr
{
unsigned short sa_family;
char sa_data[14];
};
sa_family是地址家族,一般都是“AF_xxx”的形式。通常大多用的是都是AF_INET,代表TCP/IP协议族。
sa_data是14字节协议地址。
此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构
sockaddr_in(在netinet/in.h中定义): struct sockaddr_in{short sin_family;unsigned short sin_port;struct in_addr sin_addr;unsigned char sin_zero[8];};(在ws2def.h中定义): struct sockaddr_in{    #if(_WIN32_WINNT<0x0600)    short sin_family;    #else//(_WIN32_WINNT<0x0600)    address_family sin_family;    #endif//(_WIN32_WINNT<0x0600)    ushort sin_port;    in_addr sin_addr;    char sin_zero[8];}
(在WinSock2.h中定义): struct sockaddr_in {        short   sin_family;        u_short sin_port;        struct  in_addr sin_addr;        char    sin_zero[8];};
在linux下:
in_addr结构 typedef uint32_t in_addr_t;struct in_addr  {    in_addr_t s_addr;  };在windows下: typedef struct in_addr{    union{            struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b;            struct { unsigned short s_w1,s_w2; } S_un_w;            unsigned long S_addr;    }S_un;}in_addr;更多参考:in_addr

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯