2016-08-04 16 views
0

Ich benutze Arduino IDE, um esp8266 (WiFi-Modul) zu programmieren, und ich habe einen TCP-Server auf dem Modul erstellt, dann habe ich TCP-Client-Tester-Programm verwendet, um Daten zu senden und zu empfangen Code ich verwende Ich schaffte es, Daten vom Modul zu senden, aber kann keine Daten von meinem Telefon empfangen, Kann mir jemand helfen? diese ist der Code, ich verwendeesp8266 TCP-Server erstellen, aber keine Daten empfangen

#include <ESP8266WiFi.h> 
int i =0; 
char ssid[] = "moataz";   
char pass[] = "58295829"; 
int status = WL_IDLE_STATUS; 

WiFiServer server(1050); 

void setup() 
{ 
    Serial.begin(115200); 
    WiFi.mode(WIFI_AP_STA); 
    WiFi.begin("moataz", "58295829"); 
    while (WiFi.status() != WL_CONNECTED) 
    { 
    delay(500); 
    Serial.print("."); 
    } 
    Serial.println("connectedd"); 
    server.begin(); 
    IPAddress myAddress = WiFi.localIP(); 
    Serial.println(myAddress); 
    delay(200); 
} 

bool alreadyConnected = 0; 
void loop() { 
    WiFiClient client = server.available(); 
    if (client) { 
    if (!alreadyConnected) { 
     client.flush(); 
     Serial.println("We have a new client"); 
     client.println("Hello, client!"); 
     alreadyConnected = true; 
    } 
    } 
    if (client.available() > 0) { 
    char thisChar = client.read(); 
    Serial.println("We got data"); 
    Serial.println(thisChar); 
    delay(200); 
    } 
} 
+0

Was machst du auf deinem Handy, um Daten zu empfangen? – leetibbett

Antwort

1

Wenn WifiClient gelöscht wird, wird die Verbindung geschlossen, dann Flag alreadyConnected doesnot den Verbindungszustand anzuzeigen.
Ihr Code sollte beim ersten Mal funktionieren. „Hallo! Client“
Um eine TCP-Verbindung senden, zu akzeptieren, lesen 1 Zeichen, die TCP-Verbindung schließen, Sie wie folgt vorgehen kann:

void loop() { 
    WiFiClient client = server.available(); 
    if (client) { 
     Serial.println("We have a new client"); 
     client.println("Hello, client!"); 

     if (client.available() > 0) { 
      char thisChar = client.read(); 
      Serial.println("We got data"); 
      Serial.println(thisChar); 
      delay(200); 
     } 
    } 
} 

Wenn Sie die Verbindung offen halten möchten, Sie müssen es außerhalb der Schleife halten. Dieses Beispiel WiFiTelnetToSerial.ino zeigt, wie eine Liste von WIFIClient verwaltet wird.

Verwandte Themen