做一个互联的小游戏,具体是一个手机创建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();
}
楼主解决这个问题了吗?目前我也遇到这个问题,不过出现的契机是,当数据开启的时候,貌似默认不是走WIFI这条路,报错没有权限。
项目完成一个月了,偶尔看见自己之前问的问题,就解答一下吧。楼主的问题的原因是,开启热点和资源分配不是同步的,new thread里面在暂停线程一段时间就好了。我是在一个死循环里面不停的建立socket,直到成功或者超时(先要等到apstate为13)。我的问题呢,是因为安全管理软件限制了我的网络访问权限。默认WiFi状态允许访问,数据状态不能访问。这个时候WiFi模块变为热点模式,即WiFi被关了,成为数据模式。但是数据也关掉的时候,管理软件却不拦我了。
179941666 我的qq, 我也有同样的问题请教
这篇博客讲的蛮清楚的:http://blog.csdn.net/yanzhenjie1003/article/details/51661599
这里还有个开源项目,直接拿来用,和java的servlet一样傻瓜式:https://github.com/yanzhenjie