Search wiring.org.co:

This example is for Wiring version 0024+. If you have a previous version, use the examples included with your software. If you see any errors or have comments, please let us know.

Wire Slave Receiver by Nicholas Zambetti
Demonstrates use of the Wire library Receives data as an I2C/TWI slave device Refer to the "Wire Master Writer" example for use with this

    #include <Wire.h>

    void setup()
    {
      Wire.begin(4);                 // join i2c bus with address #4
      Wire.onReceive(receiveEvent);  // register event
      Serial.begin(9600);            // start serial for output
    }

    void loop()
    {
      delay(100);
    }

    // function that executes whenever data is received from master
    // this function is registered as an event, see setup()
    void receiveEvent(int howMany)
    {
      while(1 < Wire.available())  // loop through all but the last
      {
        char c = Wire.receive();   // receive byte as a character
        Serial.print(c);           // print the character
      }
      int x = Wire.receive();      // receive byte as an integer
      Serial.println(x);           // print the integer
    }