正点原子精英版的使用
1.ESP8266的连接(我买的是比较特殊)
一般的可以根据下面的图,自己连接
2.精英版子的烧写(我是用的是STM32串口下载软件(FLYMCU)
- CH340驱动(USB串口驱动)的下载
- 首先是软件下载
- 其次是选对usb线所插的口
3.ESP8266代码的使用以及改写(代码也是网上下载的)
1.while(esp8266_send_cmd(“AT+CWJAP=“热点名称”,“热点密码””,“WIFI GOT IP”,600));
2.while(esp8266_send_cmd(“AT+CIPSTART=“TCP”,“ip地址”,8181”,“CONNECT”,200));
只要改以上两句即可,ESP8266的一些代码就略过了,毕竟网上太多了
4.java的c/s
下面展示一些 内联代码片
。
//服务器
// An highlighted block
package com.lzw;
import java.io.*;
import java.net.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyTcp { // 创建类MyTcp
private BufferedReader reader; // 创建BufferedReader对象
private ServerSocket server; // 创建ServerSocket对象
public Socket socket; // 创建Socket对象socket
void getserver() {
try {
server = new ServerSocket(8181); // 实例化Socket对象
System.out.println("服务器套接字已经创建成功"); // 输出信息
while (true) { // 如果套接字是连接状态
System.out.println("等待客户机的连接"); // 输出信息
socket = server.accept(); // 实例化Socket对象
reader = new BufferedReader(new InputStreamReader(socket
.getInputStream())); // 实例化BufferedReader对象
getClientMessage(); // 调用getClientMessage()方法
}
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
}
private void getClientMessage() {
try {
while (true) { // 如果套接字是连接状态
if (reader.ready()) {
// 获得客户端信息
System.out.println("客户机:" + "发送时间: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " " + "发送内容:" + reader.readLine());
}
}
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
try {
if (reader != null) {
reader.close(); // 关闭流
}
if (socket != null) {
socket.close(); // 关闭套接字
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) { // 主方法
MyTcp tcp = new MyTcp(); // 创建本类对象
tcp.getserver(); // 调用方法
try {
OutputStream out=tcp.socket.getOutputStream();
out.write("520521".getBytes());
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
下面展示一些 内联代码片
。
//客户端
// An highlighted block
package com.lzw;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.border.*;
public class MyClien extends JFrame { // 创建类继承JFrame类
/**
*
*/
private static final long serialVersionUID = 1L;
private PrintWriter writer; // 声明PrintWriter类对象
Socket socket; // 声明Socket对象
private JTextArea ta = new JTextArea(); // 创建JtextArea对象
private JTextField tf = new JTextField(); // 创建JtextField对象
Container cc; // 声明Container对象
public MyClien(String title) { // 构造方法
super(title); // 调用父类的构造方法
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cc = this.getContentPane(); // 实例化对象
final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBorder(new BevelBorder(BevelBorder.RAISED));
getContentPane().add(scrollPane, BorderLayout.CENTER);
scrollPane.setViewportView(ta);
cc.add(tf, "South"); // 将文本框放在窗体的下部
tf.addActionListener(new ActionListener() {
// 绑定事件
public void actionPerformed(ActionEvent e) {
// 将文本框中信息写入流
writer.println(tf.getText());
// 将文本框中信息显示在文本域中
ta.append(tf.getText() + '\n');
ta.setSelectionEnd(ta.getText().length());
tf.setText(""); // 将文本框清空
}
});
}
private void connect() { // 连接套接字方法
ta.append("尝试连接\n"); // 文本域中提示信息
try { // 捕捉异常
socket = new Socket("192.168.1.104", 8181); // 实例化Socket对象
writer = new PrintWriter(socket.getOutputStream(), true);
ta.append("完成连接\n"); // 文本域中提示信息
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
}
public static void main(String[] args) { // 主方法
MyClien clien = new MyClien("向服务器送数据"); // 创建本例对象
clien.setBounds(600,500,200, 200); // 设置窗体大小
clien.setVisible(true); // 将窗体显示
clien.connect(); // 调用连接方法
}
}
5.效果显示
6.问题和注意
里面有一些地方写死了,例如端口8181–server = new ServerSocket(8181); // 实例化Socket对象
自己本机ip查看–cmd ipconfig查看即可
java写的时候只是写的是单向通信的
https://download.csdn.net/my