免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1252 | 回复: 0
打印 上一主题 下一主题

C语言网络编程的一些数据结构 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-16 11:58 |只看该作者 |倒序浏览
hostent

#include
#include
/* Description of data base entry for a single host. */
struct hostent
{
  char *h_name; /* Official name of host. */
  char **h_aliases; /* Alias list. */
  int h_addrtype; /* Host address type. */
  int h_length; /* Length of address. */
  char **h_addr_list; /* List of addresses from name server. */
#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
};
sockaddr and sockaddr_in
#include
struct sockaddr_in {
        short int sin_family; /* Address family */
        unsigned short int sin_port; /* Port number */
        struct in_addr sin_addr; /* Internet address */
        unsigned char sin_zero[8]; /* Same size as struct sockaddr */
    };
struct sockaddr {
        unsigned short sa_family; /* address family, AF_xxx */
        char sa_data[14]; /* 14 bytes of protocol address */
    };
struct in_addr {
unsigned long s_addr;
};
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;
sin_family指代协议族,在socket编程中选AF_INET
sin_port存储端口号(使用网络字节顺序)
sin_addr存储IP地址,使用in_addr这个数据结构
sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。
s_addr按照网络字节顺序存储IP地址
sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向
sockadd的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,
在最后用进行类型转换就可以了
bzero((char*)&sockfd,sizeof(mysock));//初始化
sockfd结构体名
sockfd.sa_family=AF_INET;
socdfd.sin_addr.s_addr=inet_addr("192.168.0.1");
……
等到要做转换的时候用:
(struct sockaddr*)sockfd


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/75758/showart_1308699.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP