ChatServer

De ArduWiki
Revisión del 19:52 30 may 2019 de Kike GL (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Un servidor simple que distribuye los mensajes entrantes a todos los clientes conectados. Para usarlo, abra una ventana de terminal, Telnet a la dirección IP de su dispositivo y escriba algo. Cualquier texto entrante se enviará a todos los clientes conectados (incluido el que escribe). Además, también podrá ver las entradas del cliente en su monitor de serie.

Ejemplo

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network.
// gateway and subnet are optional:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 1, 177);
IPAddress myDns(192,168,1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 0, 0);
// telnet defaults to port 23
EthernetServer server(23);
boolean alreadyConnected = false; // whether or not the client was connected previously

//Ethernet shield attached to pins 10, 11, 12, 13

void setup() {
   Serial.begin(9600);
   Ethernet.begin(mac, ip, myDns, gateway, subnet);
   server.begin();
   Serial.print("Chat server address:");
   Serial.println(Ethernet.localIP());
}

void loop() {
   // wait for a new client:
   EthernetClient client = server.available();
   // when the client sends the first byte, say hello:
   if (client) {
      if (!alreadyConnected) {
        // clear out the input buffer:
        client.flush();
        Serial.println("We have a new client");
        client.println("Hello, client!");
        alreadyConnected = true;
     }
     if (client.available() > 0) {
        // read the bytes incoming from the client:
        char thisChar = client.read();
        // echo the bytes back to the client:
        server.write(thisChar);
        //echo the bytes to the server as well:
        Serial.write(thisChar);
     }
   }
}

Vea también


Referencias externas