北京便宜网站建设,韩国互联网公司排名,wordpress 添加新页面跳转,营销策划方案的目的一#xff0c;简介
1.1 随着网络的普及和通信技术的发展#xff0c;网络的传输速度也越来越快#xff0c;wifi技术也还成为手机设备最基本的配置。我们可以通过wifi实现手机与手机之前的信息传输#xff0c;当然也可以与任意一台有wifi模块的其它设备传输。
1.2 wifi与蓝…一简介
1.1 随着网络的普及和通信技术的发展网络的传输速度也越来越快wifi技术也还成为手机设备最基本的配置。我们可以通过wifi实现手机与手机之前的信息传输当然也可以与任意一台有wifi模块的其它设备传输。
1.2 wifi与蓝牙是我们生活中最常见也是最常用的无线通信技术当代智能家居基本也是基于这两种协议实现的。我们可以对比下两种技术以便选择合适的通信方式
对比蓝牙wifi传输距离短一般10m左右长100m-400m左右传输功耗功耗低5mA功耗高10-50mA传输速度速度慢1Mbps速度快300Mbps安全性能高传输稳定低密码被破解应用领域穿戴设备智能家居这些低功耗设备工厂设备打印机这些大数据传输场景 1.3 随着物联网发展无线通信技术已涉及到我们生活的各个角落比如
工业领域 智能家居 wifi通信成为这些物联网通信的一种重要技术下面我们来看下wifi通信的详细步骤
二 wifi通信步骤
2.1 wifi通信前一定要使通信双方在一个局域网下如果连接的是工厂机器那机器上一般装有wifi模块
建立连接有两种方式
方式一使手机和机器wifi都连接外网(就是你的室内的路由器的wifi)这样两个设备就在同一个局域网就可以进行连接和通信
方式二手机直接连接机器的wifi模块网络这种有个弊端无法上网只能和机器的wifi传输数据。
所以一般步骤是先连接机器的wifi模块网络然后打开网络配置网页打开方式是浏览器输入wifi模块的IP地址比如http://192.168.0.1,通过网络配置页面连接外网这样手机既可以上网请求服务器数据又能和机器通信
2.2 创建IP串口通讯地址并通过Socket建立wifi连接
Runnable wifiConnectRunnable new Runnable() {Overridepublic void run() {try {IP PreferencesUtils.getString(App.getInstance(), PreferencesUtils.MODEL_IP, 192.168.2.1);PORT PreferencesUtils.getString(App.getInstance(), PreferencesUtils.MODEL_PORT, 9100);socketAddress new InetSocketAddress(IP, Integer.parseInt(PORT)); //获取sockaddress对象socket new Socket(); //实例化socketsocket.connect(socketAddress, 2000); //设置超时参数Log.e(TAG, wifi: wifi连接成功);handler.sendEmptyMessage(1);} catch (Exception e) {Log.e(TAG, wifi: e.getMessage());e.printStackTrace();}}
};
2.3 获取Socket的IO流
mOutputStream socket.getOutputStream();
mInputStream socket.getInputStream();
2.4 读取wifi消息
private class ReadThread extends Thread {Overridepublic void run() {super.run();while (!isInterrupted()) {int size;try {byte[] buffer new byte[512];if (mInputStream null) return;size mInputStream.read(buffer);if (size 0) {String mReceptionnew String(buffer, 0, size);String msg mReception.toString().trim();Log.e(TAG, 接收短消息 msg);}} catch (IOException e) {e.printStackTrace();return;}}}
} 2.5 发送wifi消息
private class WriteRunnable implements Runnable {Overridepublic void run() {try {String cmdKZMT;;Log.e(TAG, 发送短消息 cmd);mOutputStream.write(cmd.getBytes());mOutputStream.flush();} catch (IOException e) {}}
}
2.6 断开wifi的socket连接
/*** 关闭Wifi的Socket连接*/
public void closeWifiStream() {try {if (mOutputStream ! null) {mOutputStream.close();mOutputStream null;}if (mInputStream ! null) {mInputStream.close();mInputStream null;}if (socket ! null) {socket.close();socket null;}} catch (Exception e) {e.printStackTrace();}
} 2.7 总结
wifi是一种局域网无线通信技术所以必须使通信设备在同一个局域网段然后维持一个socket长连接获取IO流通过IO流通道进行数据的传输。