ESP8266 使用TCP通信协议

TCP服务器示例

	#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");
	    }
	}
							

TCP客户端示例

	#include <ESP8266WiFi.h>
	 
	#define SSID "xx" //这里改成你的wifi名字
	#define PASSWD  "xx"//这里改成你的wifi密码
	 
	const uint16_t port = 8888;
	const char * host = "192.168.0.111"; // ip or dns
	WiFiClient client;//创建一个tcp client连接
	 
	// 复位或上电后运行一次:
	void setup() {
	    //在这里加入初始化相关代码,只运行一次:
	    Serial.begin(115200);
	     
	    WiFi.mode(WIFI_STA);
	    WiFi.begin(SSID,PASSWD);
	     
	    Serial.println("Wait for WiFi... ");
	    //等待wifi连接成功
	    while (WiFi.status() != WL_CONNECTED) {
	        Serial.print(".");
	        delay(500);
	    }
	     
	    Serial.println("");
	    Serial.println("WiFi connected");
	    Serial.print("IP address: ");
	    Serial.println(WiFi.localIP());
	     
	    delay(500);
	}
	 
	//一直循环执行:
	void loop() {
	    // 在这里加入主要程序代码,重复执行:
	    Serial.print("connecting to ");
	    Serial.println(host);
	     
	    if (!client.connect(host, port)) {
	        Serial.println("connection failed");
	        Serial.println("wait 5 sec...");
	        delay(5000);
	        return;
	    }
	     
	    // 发送数据到Tcp server
	    Serial.println("Send this data to server");
	    client.println(String("lingzhilab"));
	     
	    //读取从server返回到响应数据
	    String line = client.readStringUntil('\r');
	    Serial.println(line);
	     
	    Serial.println("closing connection");
	    client.stop();
	     
	    Serial.println("wait 5 sec...");
	    delay(5000);
	}
							
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值