Android用wifi热点组建局域网创建socket

问题描述

Android用wifi热点组建局域网创建socket
    做一个互联的小游戏,具体是一个手机创建wifi热点,然后其他手机连接到wifi热点进行游戏。采用CS结构,wifi热点之后,就创建一个serversocket总是失败。
public void enableServerService(){

    while(getWifiApState(wifiManager) != 13){
        sleep(500);
    }
    new Thread(){
        @Override
        public void run() {

            try {

                ServerSocket server = new ServerSocket(8888);
                while(true){
                    Socket sc = server.accept();
                    DataInputStream dataIn  = new DataInputStream(sc.getInputStream());
                    DataOutputStream dataOut=new DataOutputStream(sc.getOutputStream());
                    new ServerAgent(sc, dataIn, dataOut).run();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }.run();
}

解决方案

项目完成一个月了,偶尔看见自己之前问的问题,就解答一下吧。楼主的问题的原因是,开启热点和资源分配不是同步的,new thread里面在暂停线程一段时间就好了。我是在一个死循环里面不停的建立socket,直到成功或者超时(先要等到apstate为13)。我的问题呢,是因为安全管理软件限制了我的网络访问权限。默认WiFi状态允许访问,数据状态不能访问。这个时候WiFi模块变为热点模式,即WiFi被关了,成为数据模式。但是数据也关掉的时候,管理软件却不拦我了。

解决方案二:

楼主解决这个问题了吗?目前我也遇到这个问题,不过出现的契机是,当数据开启的时候,貌似默认不是走WIFI这条路,报错没有权限。

时间: 2024-09-11 04:06:48

Android用wifi热点组建局域网创建socket的相关文章

Android获取周围WIFI热点服务_Android

在实际开发中我们会经常需要获取周围WiFi热点,最近做了这个demo,写出来和大家一起分享一下吧.大体思路呢是这样的,首先WifiManger获取WiFi服务,然后将结果储存在ArrayList<ScanResult>中,好了,具体内容大家可以直接看代码:  MainActivity.java:  public class MainActivity extends AppCompatActivity { ArrayList<ScanResult> list; //存放周围wifi热

【Android】Android中WIFI开发总结(一)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://smallwoniu.blog.51cto.com/3911954/1334951        WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为"热点".      在Android中对Wifi操作,android本身提供了

Android 连接Wifi和创建Wifi热点 demo

[java] view plaincopy android的热点功能不可见,用了反射的技术搞定之外.   [java] view plaincopy Eclipse设置语言为utf-8才能查看中文注释   上代码: MainActivity.java [java] view plaincopy package com.widget.hotspot;      import android.os.Bundle;   import android.app.Activity;   import and

android编程实现设置、打开wifi热点共享供他人连接的方法_Android

本文实例讲述了android编程实现设置.打开wifi热点共享供他人连接的方法.分享给大家供大家参考,具体如下: 用过快牙的朋友应该知道它们在两天设备之间传输文件的时候使用的是wifi热点,然后另一台便连接这个热点再进行传输.快牙传输速度惊人应该跟它的这种机制有关系吧.不知道它的搜索机制是怎样的,但我想应该可以通过热点的名字来进行判断吧.下面我们就来探讨一下如何自动创建一个wifi热点吧 创建wifi热点首先需要手机支持,建议开发的哥们整个好点的手机,我们公司那些个山寨设备,几近有一半是不支持热

Win8下如何创建WiFi热点共享

很多时候,你都会想利用你的笔记本的无线网卡为其他的笔记本.手机等设备提供无线网络,Win8下如何创建WiFi热点共享呢? 操作步骤: 设置如下: 1. 在桌面左下角右击,选择命令指令符(管理员); 2. 启用并设定虚拟WiFi网卡; 运行命令: netsh wlan set hostednetwork mode=allow ssid=cai key=12345678 此命令有三个参数, mode:是否启用虚拟WiFi网卡,改为disallow则为禁用. ssid:无线网名称,最好用英文(以cai

ubuntu创建wifi热点(手机可识别)

这几天实验室的无线网跪了,一直纠结着用电脑开无线的问题,试了几种办法都不能解决这个问题,不过最终还是找到了一个终极方法,给大家分享一下. 一开始我是用Ubuntu自带的network manager进行设置的,其他的笔记本电脑或者windows平板可以发现此无线网络.但是我的Android手机却不行,貌似Android系统不支持Ad-hoc. 不管怎么样还是给大家分享一下这种方法,至少方便的给别的电脑分享无线网络. 一 使用系统自带的network manager(安卓不可用) 第一步: 单机屏

Android开发——自动连接指定SSID的wifi热点(不加密/加密)

最近在做一个项目,其中涉及到一块"自动连接已存在的wifi热点"的功能,在网上查阅了大量资料,五花八门,但其中一些说的很简单,即不能实现傻瓜式的拿来就用,有些说的很详细,但其中不乏些许错误造成功能无法实现,经过浣熊多方努力,终于成功将功能实现,遂将一点点小成就拿出来与大家分享. 首先需要感谢这篇文章的作者:http://blog.chinaunix.net/uid-22342564-id-3228565.html 在这篇文章中,作者定义了一个wifi工具类,其中存在着操作wifi的各种

Android开发之扫描附近wifi热点并列表显示

 最近项目中用到了wifi模块,今天做一个简单的总结. 参考:http://www.2cto.com/kf/201310/253617.html 1.怎样获取wifi对象并进行操作 要操作WIFI设备,需要先获取Context.getSystemService(Context.WIFI_SERVICE)来获取WifiManager对象,并通过这个对象来管理WIFI设备.   addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况

信号-VC++如何实现电脑创建wifi热点?

问题描述 VC++如何实现电脑创建wifi热点? 希望能给个实例代码,实现如下功能: 1.建立的wifi热点有开放和加密两种模式 2.能扫描周围的wifi信号 解决方案 电脑带有无线WIFI网卡,这样可以作为AP,提供WIFI信号给其他访问 解决方案二: 1.以管理员身份运行命令提示符: 快捷键win+R→输入cmd→然后win7会自动搜索出cmd命令,右键点击-以管理员身份运行 2.启用并设定虚拟WiFi网卡: 运行命令:netsh wlan set hostednetwork mode=al