package com.example.led;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import static java.lang.System.out;
import static java.lang.System.runFinalization;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
volatile Boolean flag_SRX =null;
private Handler handler=null;
private volatile Boolean flag=null;
private Bundle bundle=null;
private Button button=null;
private Button mLedON=null;
private Button mLedOFF=null;
private EditText editText1=null;
private EditText editText2=null;
private Socket socket=null;
private BufferedReader bufferedReader=null;
private BufferedWriter bufferedWriter=null;
@SuppressLint("HandlerLeak")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final boolean loop = true;
flag = false;
flag_SRX = false;
bundle = new Bundle();
button = (Button) findViewById(R.id.mBtnConnect);
mLedON = (Button) findViewById(R.id.mLedON);
mLedOFF = (Button) findViewById(R.id.mLedOFF);
editText1 = (EditText) findViewById(R.id.mIp);
final EditText editText2 = (EditText) findViewById(R.id.mPort);
handler = new Handler() { //测试子线程给主线程传输数据
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
Log.i("handler", "处理函数");
if (msg.what == 0x11) {
}runFinalization();
if (msg.what == 0x22) button.setText("关闭连接");
}
};
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!flag) {
new Thread(new Runnable() {
@Override
public void run() {
try {
char time = 0;
socket = new Socket(editText1.getText().toString(), Integer.valueOf(editText2.getText().toString()));
bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Log.i("开始循环等待!", "Warring");
while (socket.isConnected() == false) {
try {
Thread.sleep(100);
time++;
if (time == 10) {
Log.i("等待时间到,退出等待!", "Warring");
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
flag_SRX = true;
flag = true;
handler.sendEmptyMessage(0x22);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
} else {
try {
bufferedReader.close();
bufferedWriter.close();
socket.close();
Log.i("关闭连接!", "Warring");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedReader.close();
bufferedWriter.close();
socket.close();
socket = null;
} catch (IOException e) {
e.printStackTrace();
}
}
flag = false;
flag_SRX = false;
button.setText("连接网络");
}
}
});
mLedON.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (socket == null) return;
new Thread(new Runnable() {
@Override
public void run() {
try {
bufferedWriter.append("1\r\n");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferedWriter != null) {
try {
bufferedWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Log.i("开灯", "TCP上");
}
}).start();
}
});
mLedOFF.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (socket == null) return;
new Thread(new Runnable() {
@Override
public void run() {
try {
bufferedWriter.append("0\r\n");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferedWriter != null) {
try {
bufferedWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Log.i("关灯", "TCP上");
}
}).start();
}
});
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于STM32F103C8T6、ESP8266WiFI、Onenet云端、安卓APP的智能灯光控制系统.zip

共581个文件
h:112个
d:102个
c:102个

0 下载量 5 浏览量
2024-08-25
12:52:32
上传
评论
收藏 10.54MB ZIP 举报
温馨提示
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无VIP,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
资源推荐
资源详情
资源评论


























收起资源包目录





































































































共 581 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论


热爱技术。
- 粉丝: 3714
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 软考网络工程师全面复习笔记汇总.docx
- 路由交换技术课程设计任务书网络.doc
- 电力系统中并联型有源电力滤波器APF的Simulink仿真与Matlab建模——基于瞬时无功功率理论的ip-iq谐波检测算法
- 网络结构拓扑图.ppt
- 建设工程项目管理操作手册(11页-含图表).doc
- 网络推广方案示例.doc
- 巧克力网络营销在线推广策略.ppt
- 决策树算法研究.doc
- 文献管理软件Endnote及其新功能.ppt
- 2023年操作系统试题库综合题.doc
- python基础100练习题.doc
- 传感器试验程序MATLAB.doc
- 企划外包网络营销价格策略新知助业营销策划机构推.pptx
- 自动化专业生产实习报告.docx
- MATLAB-Carsim联合仿真:基于LQR的车辆横向控制模型(输入:前轮转角,输出:横向误差与航向误差) · CarSim
- 基于最大诚信原则的我国互联网保险法律风险问题研究.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
