Thanks for the reponse. One thing that bothered me, though, is I was reading the Ethernet lib docs, and it states that the server should be reponsible for closing the connection by explicitly calling client.stop(), even if the object goes out of scope, which suggests some way of identifying a specific connection via that object - definitely stateful, especially when using telnet. It is possible to then store the client objects and manually call available() on each, making sure that no other pending bytes are to be read, before calling server.available() to check for new clients, but it's too much of a race condition. Might be better off using socket.h and wd5100.h directly.