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

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地址。

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

网络字节顺序:一般为高位在前,低位在后,符合人输写数字的习惯。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值