您的位置:首页 > 其它

Socket相关

2016-11-28 13:58 99 查看
第一:Socket编程时,一定要先关闭写(writer)再关闭读(reader)

第二:不管是客户端还是服务端在通过Socket读取数据的时候,在你的数据传输完成后,发送一个结束标记(比如:end),这样在你的 while循环里面判断一下数据是否已经传输完毕,完毕后跳出循环,否则由于你的程序就会一直阻塞在 readLine()这里,因为你的 socket还没有断开,会一直等待你写数据。

另一个类访问不到一个public修饰的Java类中的public方法,如WifiManager中的setWifiApEnabled()方法,这是为什么呢???

`很多之前已经连接上的WIFI,配置信息会自动保存,当你关闭—->打开WIFI时就会自动连接,但有时我们并不希望这样处理,解决方法为在打开WIFI之前将以前所保存的信息清除,代码为

if(isWifiConnect()){
WifiInfo info = mWifiManager.getConnectionInfo();
mWifiManager.removeNetwork(info.getNetworkId());
mWifiManager.saveConfiguration();
}


或者

/**
* 移除所有同名节点
* @param SSID
*/
private void clearAll(String SSID) {
List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();
//按照networkId从大到小排序
Collections.sort(existingConfigs, new ComparatorConfig());
for (WifiConfiguration existingConfig : existingConfigs) {
LogHelper.i(TAG,"existingConfig.SSID="+existingConfig.SSID+",netID = "+ existingConfig.networkId);
if (existingConfig.SSID.equals("\""+SSID+"\"") /*&& existingConfig.preSharedKey.equals("\"" + password + "\"")*/) {
mWifiManager.disableNetwork(existingConfig.networkId);
mWifiManager.removeNetwork(existingConfig.networkId);
}
}
mWifiManager.saveConfiguration();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket wifi