winsock中ip问题

huang_gen 2010-05-14 09:51:44
当我用
gethostname() 获取主机名,gethostbyname()获取hostent对象,为什么
hostent *phost=gethostbyname();
phost->h_addr_list[0] phost->h_addr_list[1]是一样的,且只有一个255.255.255.255,与我用ipconfig得到的结果不一样?

2、接收广播为什么不能使用127.0.0.1?
期待高手????
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxdyu2009 2010-05-16
  • 打赏
  • 举报
回复
广播地址有一个范围表示。
尹成 2010-05-16
  • 打赏
  • 举报
回复
我没有测试过多网卡的情况,winsocket不是直接操作网卡的。理论上应该和几个网卡没什么关系,但是没有环境和条件测试。
至于获得ip,用winsock.RemoteHostIP 是获取客户端IP
具体ip是多少,你叫socket自己去处理解决吧
greatsong 2010-05-14
  • 打赏
  • 举报
回复
对于第一个问题
是不是连续调用两次inet_ntoa, 再显示了
如:
in_addr ia1, ia2;
memcpy(&ia1, phost->h_addr_list[0], phost->h_length);
memcpy(&ia2, phost->h_addr_list[0], phost->h_length);
char *p1 = inet_ntoa(ia1);
char *p2 = inet_ntoa(ia2);
printf("%s\n%s\n", p1, p2);
BloodFighter 2010-05-14
  • 打赏
  • 举报
回复
ipconfig一下,看看是不是本机配置了多个网卡 IP地址
ghostbyname可以获取多个ip地址的,你往后看看

127.0.0.1是本机IP,广播不能
自己学习一下IP地址的ABCD分段规则吧

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧