使用 TCP 套接字从 Android 设备向 ESP8266 Wi-Fi 芯片发送数据
Sending data to ESP8266 Wi-Fi chip from Android device using TCP sockets
我需要在配置为接入点的 ESP8266 芯片之间发送简单的整数。
我已经通读了这个问题:
但是我不明白如何使用TCP套接字来接收和发送数据,因为ESP8266只能使用AT命令来控制。
有人可以提供深入的解释吗?
来自应用的代码片段:
Socket client;
String ip = "192.111.1.1";
int port = 80;
int connectTimeout = 20;
String message = "Test123";
try{
client = new Socket();
client.connect(new InetSocketAddress(ip, port), connectTimeout);
DataOutputStream DataOut = new DataOutputStream(client.getOutputStream());
DataOut.writeBytes(message);
DataOut.flush();
client.close();
} catch(UnknownHostException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
你是否应该使用套接字,这取决于正在通信的设备。套接字,即 Berkeley Sockets 是功能强大的计算机的抽象,支持多个 OSI 层上的众多协议(IEEE 802 协议、IP、ICMP、TCP、UDP 等)。
从google看来ESP8266是Arduino的小型扩展板。 Arduino 没有实现套接字,至少开箱即用。一般来说,较小的设备倾向于使用它们自己的 TCP/IP 实现而不是套接字,因为后者过于通用且难以实现。 Arduino 有很多 wifi/ethernet/bluetooth-capable 板,实际上没有人会在一个库中支持它们。
在您的例子中,微控制器通过 AT 命令与 ESP8266 通信。所以这是你唯一的选择。在你的微控制器上使用 AT 命令,使用远程机器上可用的任何东西。如果是计算机,则可以在那里使用套接字。如果只是一样的Arduino+ESP8266,再用AT指令。
并且可能已经为 ESP8266 实现了 TCP,它可能会大大简化事情。否则,如果您的网络中只有两个设备,则第 2 层(没有 IP 和 TCP 的纯 wifi)通信也可以。
我需要在配置为接入点的 ESP8266 芯片之间发送简单的整数。
我已经通读了这个问题:
但是我不明白如何使用TCP套接字来接收和发送数据,因为ESP8266只能使用AT命令来控制。
有人可以提供深入的解释吗?
来自应用的代码片段:
Socket client;
String ip = "192.111.1.1";
int port = 80;
int connectTimeout = 20;
String message = "Test123";
try{
client = new Socket();
client.connect(new InetSocketAddress(ip, port), connectTimeout);
DataOutputStream DataOut = new DataOutputStream(client.getOutputStream());
DataOut.writeBytes(message);
DataOut.flush();
client.close();
} catch(UnknownHostException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
你是否应该使用套接字,这取决于正在通信的设备。套接字,即 Berkeley Sockets 是功能强大的计算机的抽象,支持多个 OSI 层上的众多协议(IEEE 802 协议、IP、ICMP、TCP、UDP 等)。
从google看来ESP8266是Arduino的小型扩展板。 Arduino 没有实现套接字,至少开箱即用。一般来说,较小的设备倾向于使用它们自己的 TCP/IP 实现而不是套接字,因为后者过于通用且难以实现。 Arduino 有很多 wifi/ethernet/bluetooth-capable 板,实际上没有人会在一个库中支持它们。
在您的例子中,微控制器通过 AT 命令与 ESP8266 通信。所以这是你唯一的选择。在你的微控制器上使用 AT 命令,使用远程机器上可用的任何东西。如果是计算机,则可以在那里使用套接字。如果只是一样的Arduino+ESP8266,再用AT指令。
并且可能已经为 ESP8266 实现了 TCP,它可能会大大简化事情。否则,如果您的网络中只有两个设备,则第 2 层(没有 IP 和 TCP 的纯 wifi)通信也可以。