当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Linux C 网络编程的问题
帖子发表于 : 2009-10-02 13:23 

注册: 2008-09-06 10:04
帖子: 509
送出感谢: 0 次
接收感谢: 0 次
代码:
这是一个简单nslookup程序,如下。
运行结果是: ./nslookup www.google.com
: length:4
: i=0
: i=1757276480
: 64.233.189.104
: i=1757276480

#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>

int main(int argc, char *argv[])
{
   int i;
   struct in_addr h_addr;
   struct hostent *host;
   if(argc != 2) {
      fprintf(stderr, "USAGE: %s <inet_address>\n", argv[0]);
      exit(1);
   }
   if((host = gethostbyname(argv[1])) == NULL) {
      fprintf(stderr, "(mini) nslookup failed on '%s'\n", argv[1]);
      exit(1);
   }
   fprintf(stdout,"length:%d\n", host->h_length);
//   int i;
//   int length = host->h_length;
   for(i = 0; i < host->h_length; ++i)
   {
      fprintf(stdout, "i=%d\n", i);
      h_addr.s_addr = *(in_addr_t *)host->h_addr_list[i];
      fprintf(stdout, "i=%d\n", i);
      fprintf(stdout, "%s\n", inet_ntoa(h_addr));
      fprintf(stdout, "i=%d\n", i);
   }
   exit(0);
}

那个i...囧~~怎么那么像内存泄漏的,看不出来。
谁能分析下怎么回事?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: Linux C 网络编程的问题
帖子发表于 : 2009-10-04 20:09 

注册: 2006-10-10 23:58
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
h_length 等于 4 是IPv4地址长
另外gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)  i输出正常


页首
 用户资料  
 
3 楼 
 文章标题 : Re: Linux C 网络编程的问题
帖子发表于 : 2009-10-05 12:01 

注册: 2008-09-06 10:04
帖子: 509
送出感谢: 0 次
接收感谢: 0 次
mooto 写道:
h_length 等于 4 是IPv4地址长
另外gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)  i输出正常


那怎么看地址有多少个呢?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: Linux C 网络编程的问题
帖子发表于 : 2009-10-10 12:51 

注册: 2009-09-27 15:05
帖子: 10
送出感谢: 0 次
接收感谢: 0 次
最好用GDB调一下就OK了


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译