安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制

socket 连接采用流的方式进行发送接收数据,采用thread线程的方式。

什么是线程? 

详细代码介绍:

博文来源:http://blog.csdn.net/zhaocundang 如果你对代码有些疑问,请在下面留言来探讨,或者加我的QQ463431476一起学习进步!

  //线程mRunnable启动private Runnable    mRunnable   = new Runnable() {public void run() { try { //连接服务器 mSocketClient = new Socket(wifiurl,Integer.parseInt(wificom)); //取得输入、输出流 mBufferedReaderClient = new BufferedReader(new InputStreamReader(mSocketClient.getInputStream())); mPrintWriterClient = new PrintWriter(mSocketClient.getOutputStream(), true); recvMessageClient = "wifi成功连接";//消息换行 // Toast.makeText(getActivity(),"wifi连接成功",Toast.LENGTH_SHORT).show(); Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); } catch (Exception e) { recvMessageClient = "连接错误!";//消息换行 Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); return; } setRecvMessage(); } }; public void setRecvMessage(){ char[] buffer = new char[256]; int count = 0; while (true) { try { if((count = mBufferedReaderClient.read(buffer))>0) { recvMessageClient = getInfoBuff(buffer, count);              //将接收的数据放入数组 Thread.sleep(500); Message msg = new Message(); msg.what = 1; mHandler.sendMessage(msg); } } catch (Exception e) { recvMessageClient = "接收异常:" + e.getMessage() + "\n";//消息换行 Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } } } //handler用于线程中更新界面数据 Handler mHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == 0) { Toast.makeText(getActivity(),recvMessageClient,Toast.LENGTH_SHORT).show();//刷新消息机制 } else if(msg.what == 1) { try {  String result = recvMessageClient; // Toast.makeText(getActivity(),result,Toast.LENGTH_SHORT).show(); //接收消息的 String [] results = recvMessageClient.split("\\.");; // Toast.makeText(getActivity(),results[3],Toast.LENGTH_SHORT).show(); //接收消息的 /* Intent intent=new Intent(); intent.putExtra("temp",results[0]); intent.putExtra("humi",results[2]); intent.setAction("zcd.netanything.temp"); getActivity().sendBroadcast(intent); */ }catch(Exception e) { // Toast.makeText(getActivity(),"无法获取数据,检查网络是否连接!",Toast.LENGTH_SHORT).show();//刷新消息机制 } } } }; //接收处理 private String getInfoBuff(char[] buff, int count) { char[] temp = new char[count]; for(int i=0; i<count; i++) { temp[i] = buff[i]; } return new String(temp); } /*public void onDestroy() { super.onDestroy(); if (isConnect) { isConnect = false; try { if(mSocketClient!=null) { mSocketClient.close(); mSocketClient = null; //mThreadvideo.destroy(); mPrintWriterClient.close(); mPrintWriterClient = null; recvMessageClient = "网络端口成功";//消息换行 Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } } catch (IOException e) { e.printStackTrace(); } mThreadClient.interrupt(); } } */

按键触发,开启线程:

  public void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1:mPrintWriterClient.print("f"); //mPrintWriterClient.print("t"); mPrintWriterClient.flush();//清空 Toast.makeText(getActivity(),"前进",Toast.LENGTH_SHORT).show(); break; case R.id.button2: mPrintWriterClient.print("b"); // mPrintWriterClient.print("t"); mPrintWriterClient.flush(); Toast.makeText(getActivity(),"后退",Toast.LENGTH_SHORT).show(); break; case R.id.button3: mPrintWriterClient.print("l"); // mPrintWriterClient.print("t"); mPrintWriterClient.flush(); Toast.makeText(getActivity(),"向左",Toast.LENGTH_SHORT).show(); break; case R.id.button4: mPrintWriterClient.print("r"); // mPrintWriterClient.print("t"); mPrintWriterClient.flush(); Toast.makeText(getActivity(),"向右",Toast.LENGTH_SHORT).show(); break; case R.id.button5: if(!isConnect) { //开启mThreadClient线程 mThreadClient = new Thread(mRunnable); mThreadClient.start(); Toast.makeText(getActivity(),"尝试连接网络",500).show(); } else { onDestroy(); isConnect=false; } break; //case R.id.button6: //关闭wifi /* if (isConnect) { isConnect = false; try { if(mSocketClient!=null) { mSocketClient.close(); mSocketClient = null; //mThreadvideo.destroy(); mPrintWriterClient.close(); mPrintWriterClient = null; recvMessageClient = "网络端口成功";//消息换行 Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } } catch (IOException e) { e.printStackTrace(); } mThreadClient.interrupt(); } */ // break; } } 

项目演示:

APP控制小车视频演示

APP物联系统视频演示

安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制...相关推荐

  1. Android发送接收WiFi,安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制,安卓openwrt...

    安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制,安卓openwrt 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片 ...

  2. 使用c#实现tcp的连接和发送接收数据

    最近有个小项目,需要调用装置的录波数据,使用tcp模式,在这里整理了下如何使用c#实现tcp连接并实现发送接收数据,分享出来. 我这里使用的tcpclient ,终端是tcpserver模式. 首先自 ...

  3. Python3树莓派连接阿里云物联网设备发送接收数据

    Python3连接阿里云物联网设备发送接收数据(树莓派) 阿里云物联网IOT 代码部分 库文件 Windows下安装环境 树莓派安装环境 可能遇到的错误 代码 效果展示 阿里云物联网IOT 首先,准备 ...

  4. Bug[5] 多路连接客户服务器,发送一路数据时,其他几路自动断开,查询PDP显示未被激活

    问题:多路连接客户服务器,发送一路数据时,其他几路自动断开,查询PDP显示未被激活. 解决:这个问题通过自测发现没有异常.

  5. 微信小程序连接蓝牙 并分包发送 接收数据完整版

    微信小程序连接蓝牙并分包发送接收数据 初始化蓝牙 初始化蓝牙设备 搜索蓝牙设备 连接蓝牙设备 获取蓝牙设备所有service(支持读写的) 向蓝牙发送数据 断开蓝牙 停止搜索蓝牙 转16进制 Arra ...

  6. 求android 中串口的发送接收数据代码

    RT,求高手帮忙! 就是 /dev/ttyS0 和/dev/ttyS1 两个设备的通信问题.. 同求~ 这个是不是需要串口驱动啊?最近正在搞这个串口通信的案子,头疼 同样也没有搞出来,老是报:不能扫描 ...

  7. php 对接 新酷卡,新酷卡socket对接支持读取信息发送/接收短信及参数命令

    参数命令 SOCKET接口使用说明 功能说明:新酷卡可以作为服务端,实现SOCKET通讯,实现三大功能: 1> 支持端口信息和新短xin主动上报. 2> 客户端可以向新酷卡软件发送xx,提 ...

  8. STM32MP157实现串口接收数据上云-MP157连接4G模块和电脑

    文章目录 前言 一.打开设备文件 二.串口初始化 三.多线程 四.程序的移植和执行 五.源码(转载请注明出处) 结语 前言 本篇分享: 这次将会用几篇博客分享STM32MP157实现串口接收数据上云的 ...

  9. C#利用SerialPort类对串口发送接收数据

    1.连接串口方法 SerialPort ser = new SerialPort();//也可以在工具箱中直接拖SerialPort控件 public void OpenCom() {try{//波特 ...

最新文章

  1. PacBio三代测序
  2. 【五线谱】变音记号 ( 升号 # | 降号 b | 重升号 x | 重降号 bb )
  3. 数学--数论--Hdu 5793 A Boring Question (打表+逆元)
  4. 动态给实例添加属性和方法
  5. Android系统对话框
  6. Microsoft Office Visio 2007 简体中文专业版
  7. python程序设计搜题软件下载_智慧职教云课堂APPPython程序设计期末考试搜题公众号答案...
  8. IntelliJ IDEA插件-翻译插件
  9. 百度收录自动化提交脚本 - python
  10. WordPress页面教程【2021】
  11. Java 学生管理系统--------13
  12. 『C++』endl、ends和flush的区别
  13. 新能源车牌识别SDK核心算法不断更新
  14. EOS区块链技术开发(〇)起源
  15. CS224W-图神经网络 笔记5.1:Spectral Clustering - 谱聚类基础知识点
  16. [模仿]html5游戏_兔子踩铃铛
  17. c语言 linux系统 delay,Linux下实现秒级定时任务的两种方案
  18. k8s节点资源耗尽处理
  19. HTML学习(MDN)
  20. python实现滑块移动操作

热门文章

  1. 交叉科学不仅不是边缘学科,反而应是科研主流
  2. 学界 | 清华AMiner团队发布53页计算机图形学研究报告
  3. 机器学习应用的未来是什么?微型化
  4. 今日头条告今日油条赔 200 万,各大公司表示不服
  5. 想获得50亿专项激励?关于穿山甲新星助推计划你必须了解的几件事
  6. Centos Git1.7.1升级到Git2.2.1
  7. Anaconda 和 JetBrains 联手推出 'Anaconda的PyCharm'
  8. 【灌水】一些奇妙的图片(持续更新)
  9. 再论JavaScript原型继承和对象继承
  10. 多年iOS开发经验总结(一)