1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-03-15 12:29:26 +01:00

Updated ChatServer

This commit is contained in:
Tom Igoe 2012-03-12 15:30:12 -04:00
parent 34d7925f27
commit 7f11df115d

View File

@ -12,7 +12,7 @@
created 18 Dec 2009 created 18 Dec 2009
by David A. Mellis by David A. Mellis
modified 10 August 2010 modified 12 March 2012
by Tom Igoe by Tom Igoe
*/ */
@ -23,14 +23,16 @@
// Enter a MAC address and IP address for your controller below. // Enter a MAC address and IP address for your controller below.
// 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[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177); IPAddress ip(192,168,1, 177);
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 gotAMessage = false; // whether or not you got a message from the client yet boolean alreadyConnected = false; // whether or not the client was connected previously
void setup() { void setup() {
// initialize the ethernet device // initialize the ethernet device
@ -39,6 +41,8 @@ void setup() {
server.begin(); server.begin();
// open the serial port // open the serial port
Serial.begin(9600); Serial.begin(9600);
Serial.print("Chat server address:");
Serial.println(Ethernet.localIP());
} }
void loop() { void loop() {
@ -47,17 +51,24 @@ void loop() {
// when the client sends the first byte, say hello: // when the client sends the first byte, say hello:
if (client) { if (client) {
if (!gotAMessage) { if (!alreadyConnected) {
// clead out the input buffer:
client.flush();
Serial.println("We have a new client"); Serial.println("We have a new client");
client.println("Hello, client!"); client.println("Hello, client!");
gotAMessage = true; alreadyConnected = true;
} }
if (client.available() > 0) {
// read the bytes incoming from the client: // read the bytes incoming from the client:
char thisChar = client.read(); char thisChar = client.read();
// echo the bytes back to the client: // echo the bytes back to the client:
server.write(thisChar); server.write(thisChar);
// echo the bytes to the server as well: // echo the bytes to the server as well:
Serial.print(thisChar); Serial.write(thisChar);
} }
} }
}