免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Wendsia
打印 上一主题 下一主题

提领指向不完全类型的指针 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2007-07-31 16:25 |显示全部楼层

  1. bzero(&their_addr, sizeof(their_addr));
复制代码

or

  1. memset(&their_addr, 0, sizeof(their_addr));
复制代码

论坛徽章:
0
2 [报告]
发表于 2007-08-01 09:47 |显示全部楼层
呵呵,我行数数错了.

  1. their_addr.sin_addr=*((struct in_addr*)(he->h_addr));
复制代码

或者是

  1. their_addr.sin_addr.s_addr=((struct in_addr*)(he->h_addr))->s_addr;
复制代码


  1. struct hostent {
  2.        char    *h_name;
  3.        char    **h_aliases;
  4.        int     h_addrtype;
  5.        int     h_length;
  6.        char    **h_addr_list;
  7. };
  8. #define h_addr h_addr_list[0]
复制代码

h_addr也是一个指针类型.所以说前面要加一个*号去取里面的内容,将其赋给前面的值.

论坛徽章:
0
3 [报告]
发表于 2007-08-01 11:04 |显示全部楼层
原帖由 Wendsia 于 2007-8-1 10:32 发表
不行噢,改了都没用,编译的时候还是会出错,老是那一个错误。
有空再帮我看一下,研究一下啊,谢谢啦!呵呵


应该没有错误吧, 都是这样写的.
你好像少包括了一个头文件吧.
#include<arpa/inet.h>

论坛徽章:
0
4 [报告]
发表于 2007-08-01 16:12 |显示全部楼层
你按照我在四楼说的方法改了之后报的错误是什么?

论坛徽章:
0
5 [报告]
发表于 2007-08-01 18:57 |显示全部楼层
原帖由 Wendsia 于 2007-8-1 16:14 发表
报告什么也没有变,编译还是那个样子的


哦,那我就不清楚了.
不过我一般按照下面这种写法就不会有问题.


  1.       struct hostent *server;
  2.       struct sockaddr_in pin;   
  3.       if ((server = gethostbyname(argv[1])) == 0)
  4.         {
  5.                 perror("gethostbyname error\n");
  6.                 exit(1);
  7.         }

  8.         memset(&pin, 0, sizeof(pin));
  9.         pin.sin_family = AF_INET;
  10.         pin.sin_addr.s_addr = ((struct in_addr*)(server->h_addr))->s_addr;
  11.         pin.sin_port = htons(12345);
复制代码


或者你再好好检查一下其它什么地方吧.

论坛徽章:
0
6 [报告]
发表于 2007-08-01 20:17 |显示全部楼层
是什么错误?
嗯.是的,我还是学生.

论坛徽章:
0
7 [报告]
发表于 2007-08-01 23:03 |显示全部楼层
原帖由 Wendsia 于 2007-8-1 20:22 发表
都不好意思说了,我把hostent
后面的t写漏了,呵呵呵呵
你搞这个多久了呀?



哦.呵呵.我也没仔细看你那个定义,原来是那儿写错了.
我也没搞多久. 真正差不多是从去年底开始才深入接触Linux的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP