Ethernet Contact Closure transport?

I am new to the world of Arduino (i have not even received my first 2 UNO boards yet) and i want to make sure i am not barking up the wrong tree.
i need to have a contact closure (digital input) at one UNO board trigger an output of another UNO board to turn on. there will be ethernet connectivity between the devices and they will be on the same network, so no complicated internet routing involved.
first of all, is there an easy way to do this? second of all, what ethernet adapter is the best to use for a cost-effective solution? i need to make 20 or so of these so it needs to be cheap and simple.
i know this is probably a simple question and hopefully not a waste of everyone's time and space on this forum, but i need something to kick-start me into this.

There is both server and client code available for the wiznet w5100 based ethernet shields.

There's also a ENC28J60 library for those ethernet boards.

The application sounds like UDP would do - regularly send the status in a packet to the receiving end, and send one promptly on every input change. Perhaps there's already a UDP format you could appropriate?