diff options
Diffstat (limited to 'libraries/Ethernet/examples/DhcpChatServer')
| -rw-r--r-- | libraries/Ethernet/examples/DhcpChatServer/DhcpChatServer.ino | 87 | 
1 files changed, 87 insertions, 0 deletions
| diff --git a/libraries/Ethernet/examples/DhcpChatServer/DhcpChatServer.ino b/libraries/Ethernet/examples/DhcpChatServer/DhcpChatServer.ino new file mode 100644 index 0000000..09cbd43 --- /dev/null +++ b/libraries/Ethernet/examples/DhcpChatServer/DhcpChatServer.ino @@ -0,0 +1,87 @@ +/* + DHCP Chat  Server +  + A simple server that distributes any incoming messages to all + connected clients.  To use telnet to  your device's IP address and type. + You can see the client's input in the serial monitor as well. + Using an Arduino Wiznet Ethernet shield.  +  + THis version attempts to get an IP address using DHCP +  + Circuit: + * Ethernet shield attached to pins 10, 11, 12, 13 +  + created 21 May 2011 + modified 9 Apr 2012 + by Tom Igoe + Based on ChatServer example by David A. Mellis +  + */ + +#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[] = {  +  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 }; +IPAddress ip(192,168,1, 177); +IPAddress gateway(192,168,1, 1); +IPAddress subnet(255, 255, 0, 0); + +// telnet defaults to port 23 +EthernetServer server(23); +boolean gotAMessage = false; // whether or not you got a message from the client yet + +void setup() { +  // Open serial communications and wait for port to open: +  Serial.begin(9600); +  // this check is only needed on the Leonardo: +   while (!Serial) { +    ; // wait for serial port to connect. Needed for Leonardo only +  } + + +  // start the Ethernet connection: +  Serial.println("Trying to get an IP address using DHCP"); +  if (Ethernet.begin(mac) == 0) { +    Serial.println("Failed to configure Ethernet using DHCP"); +    // initialize the ethernet device not using DHCP: +    Ethernet.begin(mac, ip, gateway, subnet); +  } +  // print your local IP address: +  Serial.print("My IP address: "); +  ip = Ethernet.localIP(); +  for (byte thisByte = 0; thisByte < 4; thisByte++) { +    // print the value of each byte of the IP address: +    Serial.print(ip[thisByte], DEC); +    Serial.print(".");  +  } +  Serial.println(); +  // start listening for clients +  server.begin(); +  +} + +void loop() { +  // wait for a new client: +  EthernetClient client = server.available(); + +  // when the client sends the first byte, say hello: +  if (client) { +    if (!gotAMessage) { +      Serial.println("We have a new client"); +      client.println("Hello, client!");  +      gotAMessage = true; +    } + +    // 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.print(thisChar); +  } +} + | 
