【发布时间】:2012-11-23 07:44:20
【问题描述】:
在下面的 sn-p 中,我发现 sockaddr_in 被类型转换为 sockaddr as '(struct sockaddr *) &sin' 。我只想知道 sockaddr_in 中的变量将对应映射到 sockaddr 。 下面是sn-p。
struct sockaddr {
unsigned short sa_family; // address family, AF_xxx
char sa_data[14]; // 14 bytes of protocol address
};
// IPv4 AF_INET 套接字:
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 sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(floodport);
sin.sin_addr.s_addr = inet_addr(argv[1]);
//类型转换
(struct sockaddr *) &sin // what values of sockaddr_in would be mapped to sockaddr ?
这个转换在socket编程中的sendto()中使用如下。
sendto(s, datagram, iph->tot_len,0, (struct sockaddr *) &sin,sizeof(sin))
提前致谢。
【问题讨论】:
-
那么,您的问题到底是什么?
标签: c sockets struct network-programming type-conversion