永发信息网

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

答案:3  悬赏:40  手机版
解决时间 2021-11-24 18:06
  • 提问者网友:缘字诀
  • 2021-11-24 14:37
在windows下,用C语言编写,inet_addr要怎么用呀?
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-11-24 15:38
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;
  };追问强制转换什么呀,inet_addr()返回的不是一个一个无符号长整型数吗,
全部回答
  • 1楼网友:你可爱的野爹
  • 2021-11-24 17:47
那你还是先从头开始学socket编程吧,只知道这么一点的话没有任何作用,至少先学会listen,send和receive吧(学完这几个函数你就基本上懂了你这问题了)。
  • 2楼网友:荒野風
  • 2021-11-24 17:09
不需要定义,头文件自带。
struct in_addr{
in_addr_t s_addr;
}
应用在socket连接:
struct sockaddr_in serveraddr;
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(host.port);
serveraddr.sin_addr.S_un.S_addr = inet_addr(host.ip);追问本人愚笨呀,不用定义,意思是可以直接用吗?
unsigned long ip_num1
ip_num1 = inet_addr("23.32.53.145");
可以吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯