android 创建WIFI热点后作为服务器,如何获取主机IP地址【用于连接socket】

0zien0 2014-08-15 05:56:01
两台手机,一台做WIFI热点,一台接入【或者用蓝牙连接吧】,反正就两台手机连接到同一个网络。

其中一台手机作为服务器,另外一台手机作为客户端接入,用socket连接时需要知道作为服务器的手机的IP地址还有端口号。

我就是想知道如何获取作为服务器手机的IP地址和端口号,用于链接socket通信。
...全文
22502 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zrf1335348191 2017-04-27
  • 打赏
  • 举报
回复
竟然跟我同一个需求.... 开启热点的那一方开启server,然后ip地址能自己写吗? 开启热点的手机怎么获取到本机的网关呢?
lee478746741 2016-08-30
  • 打赏
  • 举报
回复
可以发送一个demo吗 现在正在研究这个方面 想借鉴一下
darnis 2016-08-27
  • 打赏
  • 举报
回复
做热点服务的 手机IP地址在 关于 里面看是 不可用, 用 WiFiManager 去获取的时候也是得不到 本机IP,,蛋疼的事,, 我现在采取的 措施 是 连接 热点的客户端 (使用热点的手机或者PC其它终端),主动去连接自己的 网关(发广播,提供热点服务的手机也收不到)。 暂时可以工作。
ifreewolf99 2016-08-25
  • 打赏
  • 举报
回复
楼主,你这个完成了吗?我现在也在做这个,能分享一下经验吗?
cha01an 2016-01-29
  • 打赏
  • 举报
回复
使用WifiManager调用相关的类 WifiManager wifiManage = (WifiManager) getSystemService(Context.WIFI_SERVICE); DhcpInfo info = wifiManage.getDhcpInfo(); WifiInfo wifiinfo = wifiManage.getConnectionInfo(); String ip = intToIp(wifiinfo.getIpAddress()); String serverAddress = intToIp(info.serverAddress); // String serverAddress = connectedIP.get(0);
石云升 2015-03-30
  • 打赏
  • 举报
回复
设置ap的手机默认热点是192.168.43.1 但是很多时候会连接不上。。所以得换向来做。即把连接热点的手机作为服务器。设置热点的手机去连socket 这样就可以了。
致知Fighting 2014-08-18
  • 打赏
  • 举报
回复
引用 3 楼 a42626423 的回复:
[quote=引用 2 楼 ygycomon 的回复:] 原来你是这种蛋疼的场景,那就不能用LS的方法。一般来说服务器的ip对于客户端都是公开可见的。 你这种属于需要去发现服务器ip的场景,那么可以通过服务器在局域网里定时发广播的方式让客户端发现自己,或者你通过某种公开的第三方来记录服务器的ip,客户端去查询第三方。比如你用一个固定的服务器作为http,然后服务器启动了以后把自己的ip发到固定服务器,客户端去查就好了
一个手机的网游,我现在要实现的是,当两个距离很近的玩家,他们之间不经过服务器就可以实现联网对战【WIFI热点或蓝牙吧】,其中一台手机充当服务器角色。 或者我举个例子吧,我做一个简单的手机应用,当两个人很近的时候,打开这应用就可以实现像QQ聊天一样的功能。一台手机充当服务器,一台【或多台】客户端通过socket(IP地址+端口号)链接服务器,实现最简单的聊天功能。 所以说你说得第三方客户端,服务器等方法不合适。 定期发广播具体是怎么处理的呢,能具体点吗? 我其实是写C++的。。。 打开WIFI,两台手机连接上WIFI【一台当热点】,网上好多例子我应该能处理,现在就剩下获取主机IP和端口号不知道怎么处理了, 只要能拿回来,就可以传给C++代码的socket连接网络了。[/quote] socket发广播,你自己找资料去。 我说的那个方案怎么不合适我不懂,你是没有自己的服务器么,还是你的手机都是没有广域网的,比如你的自己的服务器是192.168.1.1,那你的手机就都去192.168.1.1上查询目前局域网里服务器的地址就好了。
0zien0 2014-08-15
  • 打赏
  • 举报
回复
引用 2 楼 ygycomon 的回复:
原来你是这种蛋疼的场景,那就不能用LS的方法。一般来说服务器的ip对于客户端都是公开可见的。 你这种属于需要去发现服务器ip的场景,那么可以通过服务器在局域网里定时发广播的方式让客户端发现自己,或者你通过某种公开的第三方来记录服务器的ip,客户端去查询第三方。比如你用一个固定的服务器作为http,然后服务器启动了以后把自己的ip发到固定服务器,客户端去查就好了
一个手机的网游,我现在要实现的是,当两个距离很近的玩家,他们之间不经过服务器就可以实现联网对战【WIFI热点或蓝牙吧】,其中一台手机充当服务器角色。 或者我举个例子吧,我做一个简单的手机应用,当两个人很近的时候,打开这应用就可以实现像QQ聊天一样的功能。一台手机充当服务器,一台【或多台】客户端通过socket(IP地址+端口号)链接服务器,实现最简单的聊天功能。 所以说你说得第三方客户端,服务器等方法不合适。 定期发广播具体是怎么处理的呢,能具体点吗? 我其实是写C++的。。。 打开WIFI,两台手机连接上WIFI【一台当热点】,网上好多例子我应该能处理,现在就剩下获取主机IP和端口号不知道怎么处理了, 只要能拿回来,就可以传给C++代码的socket连接网络了。
致知Fighting 2014-08-15
  • 打赏
  • 举报
回复
原来你是这种蛋疼的场景,那就不能用LS的方法。一般来说服务器的ip对于客户端都是公开可见的。 你这种属于需要去发现服务器ip的场景,那么可以通过服务器在局域网里定时发广播的方式让客户端发现自己,或者你通过某种公开的第三方来记录服务器的ip,客户端去查询第三方。比如你用一个固定的服务器作为http,然后服务器启动了以后把自己的ip发到固定服务器,客户端去查就好了
致知Fighting 2014-08-15
  • 打赏
  • 举报
回复
adb 进去用命令查

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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