Diferencia entre revisiones de «ChatServer»
De ArduWiki
(→Vea también) |
|||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 2: | Línea 2: | ||
== Ejemplo == | == Ejemplo == | ||
− | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#include <SPI.h> | #include <SPI.h> | ||
#include <Ethernet.h> | #include <Ethernet.h> | ||
Línea 28: | Línea 9: | ||
// The IP address will be dependent on your local network. | // The IP address will be dependent on your local network. | ||
// gateway and subnet are optional: | // gateway and subnet are optional: | ||
− | byte mac[] = { | + | byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; |
− | |||
− | }; | ||
IPAddress ip(192, 168, 1, 177); | IPAddress ip(192, 168, 1, 177); | ||
IPAddress myDns(192,168,1, 1); | IPAddress myDns(192,168,1, 1); | ||
IPAddress gateway(192, 168, 1, 1); | IPAddress gateway(192, 168, 1, 1); | ||
IPAddress subnet(255, 255, 0, 0); | IPAddress subnet(255, 255, 0, 0); | ||
− | |||
− | |||
// telnet defaults to port 23 | // telnet defaults to port 23 | ||
EthernetServer server(23); | EthernetServer server(23); | ||
boolean alreadyConnected = false; // whether or not the client was connected previously | boolean alreadyConnected = false; // whether or not the client was connected previously | ||
+ | |||
+ | //Ethernet shield attached to pins 10, 11, 12, 13 | ||
void setup() { | 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() { | 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); | |
− | + | } | |
− | + | } | |
− | |||
− | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
− | <categorytree mode=all> | + | <categorytree mode=all>Libreria Ethernet</categorytree> |
+ | |||
− | == Referencias == | + | == Referencias externas == |
− | [[Category: | + | [[Category:Libreria Ethernet]] |
Revisión actual del 23:52 30 may 2019
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