展开全部
in_addr_t inet_addr(const char *cp);
这个函数返回的是网络顺序的四字节网络地址。例如:
in_addr ipAddr;
ipAddr.S_un.S_addr = inet_addr("127.0.0.1");
就是把字符串形式的ip地址转化为0xXXXXXXXX形式的地址格式。
这个函数返回的是网络顺序的四字节网络地址。例如:
in_addr ipAddr;
ipAddr.S_un.S_addr = inet_addr("127.0.0.1");
就是把字符串形式的ip地址转化为0xXXXXXXXX形式的地址格式。
更多追问追答
追问
这个我知道
in_addr ipAddr ipAddr.S_un.S_addr ,都是什么东西呀,我可以直接让inet_addr结果赋值给一个unsigend long型的数吗?
追答
你可以强制转换。其实in_addr也是个联合。
struct in_addr
{
union
{
struct
{
u_char s_b1,s_b2,s_b3,s_b4;
} S_un_b; //An IPv4 address formatted as four u_chars.
struct
{
u_short s_w1,s_w2;
} S_un_w; //An IPv4 address formatted as two u_shorts
u_long S_addr;//An IPv4 address formatted as a u_long
} S_un;
};
展开全部
那你还是先从头开始学socket编程吧,只知道这么一点的话没有任何作用,至少先学会listen,send和receive吧(学完这几个函数你就基本上懂了你这问题了)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不需要定义,头文件自带。
struct in_addr{
in_addr_t s_addr;
}
应用在socket连接:
struct sockaddr_in serveraddr;
serveraddr.sin_family = AF_INET;/*主机地址标识*/
serveraddr.sin_port = htons(host.port);/*port htons 16*/
serveraddr.sin_addr.S_un.S_addr = inet_addr(host.ip);/*ip*/
struct in_addr{
in_addr_t s_addr;
}
应用在socket连接:
struct sockaddr_in serveraddr;
serveraddr.sin_family = AF_INET;/*主机地址标识*/
serveraddr.sin_port = htons(host.port);/*port htons 16*/
serveraddr.sin_addr.S_un.S_addr = inet_addr(host.ip);/*ip*/
追问
本人愚笨呀,不用定义,意思是可以直接用吗?
unsigned long ip_num1
ip_num1 = inet_addr("23.32.53.145");
可以吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询