您的位置:首页 > 理论基础 > 计算机网络

Socket方面的结构体及相关函数

2011-08-02 17:31 183 查看
struct   sockaddr   {  

                unsigned   short   sa_family;     

                char   sa_data[14];     

        };  

  上面是通用的socket地址,一般在用socket函数时使用。正常情况下,用以下两种方式转换

         

  struct   sockaddr_in   {  

                short   int   sin_family;            

                unsigned   short   int   sin_port;           //端口

                struct   in_addr   sin_addr;                   //IPV4

                unsigned   char   sin_zero[8];              //一般清0

        };  

        struct   in_addr就是32位IP地址。  

        struct   in_addr   {  

                union {

                        struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;

                        struct { u_short s_w1,s_w2; } S_un_w;

                        u_long S_addr; 

                } S_un;

                #define s_addr  S_un.S_addr

        }; 

htonl(long port)         :把长整型的port转换为网络字节顺序;

htons(short port)      :把短整型的port转换为网络字节顺序。

ulong inet_addr(const char *p)             :把字符串表示的IP地址转换为网络字节顺序的IP地址

char *inet_ntoa(ulong ip)                       :把网络字节顺序的IP地址转换为字符串表示的IP地址。

主机字节顺序:一般为低位在前,高位在后,比较符合人的逻辑思维;

网络字节顺序:一般为高位在前,低位在后,符合人输写数字的习惯。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket struct 网络