在windows下,用C语言编写,inet_addr要怎么用呀?

求救呀,我快晕了,没学过网络编程。。要定义结构什么的吗... 求救呀,我快晕了,没学过网络编程。。要定义结构什么的吗 展开
 我来答
来自桃花江助人为乐的银柳
推荐于2016-11-08 · TA获得超过895个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:144万
展开全部
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结果赋值给一个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;
  };
ll20143628
2012-03-16 · TA获得超过945个赞
知道小有建树答主
回答量:1153
采纳率:0%
帮助的人:705万
展开全部
那你还是先从头开始学socket编程吧,只知道这么一点的话没有任何作用,至少先学会listen,send和receive吧(学完这几个函数你就基本上懂了你这问题了)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hgxingk
2012-03-16 · TA获得超过162个赞
知道答主
回答量:47
采纳率:0%
帮助的人:40.8万
展开全部
不需要定义,头文件自带。
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");
可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式