WIFI TCP协议通信 TCP服务器示例

本帖主要讲解ESP8266 WIFI功能关于TCP协议网络传输的应用,这里演示了ESP8266作为TCP服务器的一个示例:

一、软件和硬件

硬件我们本次使用零知-ESP8266;

二、方法步骤

(1)先在零知开发工具中复制下面的代码到零知开发工具中:


							
	/**********************************************************
	*    文件: tcp-server.ino      by 零知实验室([url]www.lingzhilab.com[/url])
	*    -^^- 零知开源,让电子制作变得更简单! -^^-
	*    时间: 2019/06/17 14:12
	*    说明:
	************************************************************/
	#include <ESP8266WiFi.h>
	 
	int port = 8888;  //Port number
	WiFiServer server(port);
	 
	//Server connect to WiFi Network
	const char *ssid = "xx";  //Enter your wifi SSID
	const char *password = "xx";  //Enter your wifi Password
	 
	int count=0;
	 
	// 复位或上电后运行一次:
	void setup() {
	    //在这里加入初始化相关代码,只运行一次:
	    Serial.begin(115200);
	     
	    Serial.println();
	     
	    WiFi.mode(WIFI_STA);
	    WiFi.begin(ssid, password); //Connect to wifi
	     
	    // Wait for connection
	    Serial.println("Connecting to Wifi");
	    while (WiFi.status() != WL_CONNECTED) {
	        delay(500);
	        Serial.print(".");
	        delay(500);
	    }
	     
	    Serial.println("");
	    Serial.print("Connected to ");
	    Serial.println(ssid);
	     
	    Serial.print("IP address: ");
	    Serial.println(WiFi.localIP());
	    Serial.print("port:");
	    Serial.println(port);
	    server.begin();
	}
	 
	//一直循环执行:
	void loop() {
	    // 在这里加入主要程序代码,重复执行:
	    WiFiClient client = server.available();
	     
	    if (client) {
	        if(client.connected())
	        {
	            Serial.println("Client Connected");
	        }
	         
	        while(client.connected()){
	            while(client.available()>0){
	                // read data from the connected client
	                Serial.write(client.read());
	            }
	            //Send Data to connected client
	            while(Serial.available()>0)
	            {
	                client.write(Serial.read());
	            }
	        }
	        client.stop();
	        Serial.println("Client disconnected");
	    }
	}
							
						

将上面代码验证后并上传到零知ESP8266,然后打开串口调试窗口,可以看到如下信息:

现在已经将ESP8266作为TCP服务器了,上面信息为IP和端口

(2)打开零知工具箱的网络调试窗口,然后选择TCP客户端,并填写上面的IP和端口:

(3)点击【连接】后,就与ESP8266建立的TCP连接了,就可以发送和接收数据了,如下: