android wifi连接+基于socket的文件数据传输(上)
16lz
2021-01-25
分客户端和服务器端两大部分介绍: 客户端: 1.WiFi连接: 1.1开启WiFi
1.2添加一个网络并连接(添加网络即将此WifiConfiguration至wificonfiglist)
具体实现函数: // 添加一个网络并连接
可见, addNetwork之前需要先根据SSID,password,type(加密协议)创建 WifiConfiguration,,并且每次都需重新创建(若已经在wificonfiglist 列表存在,则先删除),然后通过.addNetwork函数添加至在wificonfiglist 列表,然后通过.enableNetwork方法连接该WiFi。 2.socket通信: 2.1.获取服务器的IP,端口信息 首先获得服务器端即热点的IP
2.2将服务器端IP和要传输数据作为参数构造客户端线程(),并启动。
在Sender线程类的run方法中,先声明sock,其中参数为IP地址和自定义端口,定义输出流和输入流,其中客户端输出流发送数据至服务器端,目的是唤醒服务器端输入流内阻塞中的read函数,让服务器端自动继续往下执行输出流发送数据的程序;客户端输入流接收从服务器端传入的数据,放于可变字符串StringBuffer内,再由handler机制,传至主线程,刷新TextView控件
服务器端:
有点累,下篇再整理。。。
public void openWifi () { if (!mWifiManager .isWifiEnabled()) { mWifiManager.setWifiEnabled(true); } }
1.2添加一个网络并连接(添加网络即将此WifiConfiguration至wificonfiglist)
mWifiAdmin.addNetwork( mWifiAdmin.createWifiInfo(Constant.HOST_SPOT_SSID, Constant.HOST_SPOT_PASS_WORD , WifiAdmin. TYPE_WPA));
具体实现函数: // 添加一个网络并连接
public void addNetwork(WifiConfiguration wcg) { register(); WifiApAdmin. closeWifiAp(mContext); int wcgID = mWifiManager .addNetwork(wcg );//成功返回wifiId,否则-1 boolean b = mWifiManager.enableNetwork(wcgID, true); }
可见, addNetwork之前需要先根据SSID,password,type(加密协议)创建 WifiConfiguration,,并且每次都需重新创建(若已经在wificonfiglist 列表存在,则先删除),然后通过.addNetwork函数添加至在wificonfiglist 列表,然后通过.enableNetwork方法连接该WiFi。 2.socket通信: 2.1.获取服务器的IP,端口信息 首先获得服务器端即热点的IP
WifiManager wifiManage = (WifiManager) getSystemService (Context.WIFI_SERVICE ); DhcpInfo info = wifiManage.getDhcpInfo (); String serverAddress = intToIp(info. serverAddress );
2.2将服务器端IP和要传输数据作为参数构造客户端线程(),并启动。
client=new Sender (serverAddress, messagec); client.start();
在Sender线程类的run方法中,先声明sock,其中参数为IP地址和自定义端口,定义输出流和输入流,其中客户端输出流发送数据至服务器端,目的是唤醒服务器端输入流内阻塞中的read函数,让服务器端自动继续往下执行输出流发送数据的程序;客户端输入流接收从服务器端传入的数据,放于可变字符串StringBuffer内,再由handler机制,传至主线程,刷新TextView控件
服务器端:
有点累,下篇再整理。。。
更多相关文章
- “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
- Nginx系列教程(二)| 一文带你读懂Nginx的正向与反向代理
- Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Android通过RandomAccessFile 向文件中写入数据
- 确认数据android 弹出提示框
- Android(安卓)命令 - sqlite3
- Android之四大组件、五大存储、七大布局