ethernet udp - do ANYTHING with received buffer

how do you work with the buffer output of this example file?

is it outputting a string, and if it is how do i even compare this to anything?

if(packetBuffer == "thing") { do stuff; } doesn't work, but that's what i'm trying to get to.

for an idiot who knows fuckall about C, it's great that the example works but i can't do anything with it besides print things out on the serial monitor. serial.println can handle whatever the buffer is but nothing else can. it'd be nice if there was anything else in the example about this.


You know the answer to your problem.

You are going to have to learn a thing about C


if (strcmp(packetBuffer, "thing") == 0)  {
  Serial.print("Yay! I know a thing about C\r\n");

More helpfully.
Generally, it's a good idea to learn a bit of C, before you start trying to use it for network applications.

I thoroughly recommend this book

Below is some client test code that captures what is sent back from the dyndns IP server. You would various String parsing functions to extract the IP address if desired.

//zoomkat 11-04-13
//simple client test
//for use with IDE 1.0.1
//with DNS, DHCP, and Host
//open serial monitor and send an e to test client GET
//for use with W5100 based ethernet shields
//remove SD card if inserted
//data from myIP server captured in readString 

#include <SPI.h>
#include <Ethernet.h>
String readString;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address

char serverName[] = ""; // myIP server test web page server
EthernetClient client;


void setup(){

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:

  Serial.println("client readString test 11/04/13"); // so I can keep track of what is loaded
  Serial.println("Send an e in serial monitor to test"); // what to do to test

void loop(){
  // check for serial input
  if (Serial.available() > 0) //if something in serial buffer
    byte inChar; // sets inChar as a byte
    inChar =; //gets byte from buffer
    if(inChar == 'e') // checks to see byte is an e
      sendGET(); // call sendGET function below when byte is an e


void sendGET() //client function to send/receive GET request data.
  if (client.connect(serverName, 80)) {  //starts client connection, checks for connection
    client.println("GET / HTTP/1.1"); //download text
    client.println("Connection: close");  //close 1.1 persistent connection  
    client.println(); //end of get request
  else {
    Serial.println("connection failed"); //error message if no client connect

  while(client.connected() && !client.available()) delay(1); //waits for data
  while (client.connected() || client.available()) { //connected or data available
    char c =; //gets byte from ethernet buffer
    readString += c; //places captured byte in readString

  client.stop(); //stop client
  Serial.println("client disconnected.");
  Serial.println("Data from server captured in readString:");
  Serial.print(readString); //prints readString to serial monitor 
  Serial.println("End of readString");
  readString=""; //clear readString variable