Chinaunix首页 | 论坛 | 博客
  • 博客访问: 923949
  • 博文数量: 201
  • 博客积分: 8078
  • 博客等级: 中将
  • 技术积分: 2162
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-20 17:22
文章分类

全部博文(201)

文章存档

2013年(3)

2012年(11)

2011年(34)

2010年(25)

2009年(51)

2008年(77)

分类: 系统运维

2008-05-25 20:23:00

一种可行的方法是(保证网络连通的情况下):

1 不管是否设置了主机名, 只要能访问IP网络都会有IP.
2 建立UDP套接字.
3 进行本地绑定
4 将该地址设置为广播套接字
5 获取绑定的端口, 并使用使用该UDP套接字(或者新建一个UDP套接字)向该端口广播数据(注意是广播地址, 因为在这里我们还不知道本机地址, 但是有限广播地址是知道的).
6 接收数据中的peername中包含本机地址, (为了确保是本机发送的数据, 可以对发送的数据做手脚, 并进行检查).
7  假如已经向外建立了TCP连接就直接调用getpeername就OK了, 没有什么麻烦的了.
8 基本上 得到的数值跟 gethostbyname(NULL) 及 gethostbyname("")返回的值是一个样的。

阅读(1255) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~