2015-10-16 78 views
2

我想在Arduino IDE中通过ESP8266创建一个简单的Wifi TCP服务器。但是我遇到了一个很大的问题:当我从客户端发送字符或字符串时,我无法在服务器上收到它。如何通过ESP8266创建TCP服务器?

事实上,我连接esp8266到我的电脑,我想看到从pc终端客户端发送字符。 我的发送端是套接字协议的应用程式Android完整的代码我在服务器端写的是:

WiFiServer server(8888); 
void setup() 
{ 
    initHardware(); 
    setupWiFi(); 
    server.begin(); 
} 
void loop() 
{ 
    WiFiClient client = server.available(); 
    if (client) { 
    if (client.available() > 0) { 
     char c = client.read(); 
     Serial.write(c); 
    } 
    } 
} 
void setupWiFi() 
{ 
    WiFi.mode(WIFI_AP); 
    WiFi.softAP("RControl", WiFiAPPSK); 
} 

void initHardware() 
{ 
    Serial.begin(115200); 
} 

波特率将其设置为115200两侧。

+0

请提供更多代码,双方都会提供帮助。 – Marged

+0

@已收集:我也假设,但“没有收到”并不意味着“但程序在发送方执行成功”。 –

+0

我发送方是SocketProtocol应用程序,当我点击发送按钮时,状态改变为发送消息!我认为不能发送消息! – Sadeq

回答

3

在循环中,您在建立客户端连接时立即关闭客户端连接,删除WiFiClient对象。

为了保持连接打开,你可以修改的循环是这样的:

WiFiClient client; 
void loop() 
{ 
    if (!client.connected()) { 
     // try to connect to a new client 
     client = server.available(); 
    } else { 
     // read data from the connected client 
     if (client.available() > 0) { 
      Serial.write(client.read()); 
     } 
    } 
} 

当客户端未连接它会尝试连接一个当客户端连接时,它读取输入数据。