ESP8266的TCPclient

基于Arduino的测试:

#include <ESP8266WiFi.h>
 
//以下三个定义为调试定义
#define DebugBegin(baud_rate)    Serial.begin(baud_rate)
#define DebugPrintln(message)    Serial.println(message)
#define DebugPrint(message)    Serial.print(message)
 
#define AP_SSID "ESP12" //这里改成你的wifi名字
#define AP_PSW  "12345678"//这里改成你的wifi密码
 
const uint16_t port = 5000;
const char * host = "192.168.4.10"; // ip or dns
WiFiClient client;//创建一个tcp client连接
 
void setup() {
  //设置串口波特率,以便打印信息
  DebugBegin(115200);
  //延时5s 为了演示效果
  delay(5000);
  // 我不想别人连接我,只想做个站点
  WiFi.mode(WIFI_STA);
  WiFi.begin(AP_SSID,AP_PSW);
 
  DebugPrint("Wait for WiFi... ");
  //等待wifi连接成功
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("...");
    delay(500);
  }
 
  DebugPrintln("");
  DebugPrintln("WiFi connected");
  DebugPrint("IP address: ");
  DebugPrintln(WiFi.localIP());
 
  delay(500);

  DebugPrint("connecting to ");
  DebugPrintln(host);
  client.connect(host, port);
}
 
void loop() {
  
  
 //connect - 启动tcp连接
 /**
 * 建立一个tcp连接
 * @param host    host of tcpserver (192.xx.xx.xx)
 * @param port  port of tcpserver
 * @return  result of tcp connect
 *          1 --- success
 *          0 --- fail
 */
 int result=client.connect(host, port);
  DebugPrintln(result);
  DebugPrintln(client.connected());
  DebugPrintln(client.status());
  if (result==0) {
    DebugPrintln("connection failed");
    DebugPrintln("wait 5 sc...");
    delay(5000);
    
  }
 else{
  // 发送数据到Tcp server
  DebugPrintln("Send this data to server");
  //println - 发送数据到client连接的server
  client.println(String("Send this data to server"));
 
  //读取从server返回到响应数据
  //readStringUntil - 读取响应数据直到某个字符串为止
  String line = client.readStringUntil('\r');
  DebugPrintln(line);
 
  DebugPrintln("closing connection");
  client.stop();
 
  DebugPrintln("wait 3 sec...");
  delay(3000);
 }
}

今天碰到ESP8266作为tcp客户端连接tcpserve时报错client.status()=0;
傻傻的找了半天,原来是因为开启了防火墙。。。。难受。。。。关闭即可,同时要保证在同一网段中。
最后感谢单片机菜鸟的博客 https://blog.csdn.net/dpjcn1990/article/details/92830087

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值