基于STM32的ESP8266使用教程(四)(短篇)

时间:2022-08-31 19:18:45

写在前面:在上一篇中介绍了通过单片机发送指令控制WIFI模块,本来想写一下时钟、I/O口及串口的初始化函数,但是因为项目年代久远(一年前做的),怕有错误,误导博友,故不给出代码,见谅。本章要介绍Android端通过WIFI与手机建立连接并通信的过程。

我们使用Socket类,即“套接字”进行通信。由于其相关说明对程序开发没有多大帮助,故不再赘述,只需知道使用其进行通讯需要目标的IP地址及端口号即可,直接来看代码:

Test_Button.setOnClickListener(new OnClickListener(){
	@Override
	public void onClick(View v){
		//在子进程中完成数据的获取,在主进程中完成UI更新
		new Thread(new Runnable(){//开启一个线程
        		@Override
        		public void run(){
        			try{
        				Socket TestSocket = new Socket();//new一个socket
        				TestSocket.connect(new InetSocketAddress("192.168.4.1", 8080), 8000);//三个参数分别是IP、端口、超时
					OutputStream TestOS = TestSocket.getOutputStream();//输出流
        				InputStream TestIS = TestSocket.getInputStream();//输入流
        				byte send_buffer[] = {40};//输出字符数组
					byte rec_buffer[] = new char[10];//输入字符数组
        				TestOS.write(buffer);//这样字符就发送了
        				for(int i = 0; i < 10; i++){
        					rec_buffer[i] = TestIS.read();//read()方法是一个字符一个字符接收
   		         		}
        				//关闭所有流及socket
        				TestOS.close();
        				TestIS.close();
        				TestSocket.close();
					//接下去可对收到的数据进行操作
        			}
        			catch(Exception e){
        				//可以打印错误日志啥的
        			}
        		}
        	}).start();
        }
});
总结一下: 通信过程很简单,建立一个Socket,调用connect()方法,通过输入输出流传递数据,最后关闭流和Socket即可。

至此,完成了全部关于WIFI模块的使用教程。

下面放上百度盘链接:网络调试助手下载链接:点击打开链接 串口调试助手下载链接:点击打开链接