Hi,
My name is Razvan Coca, I'm a Linux C++ developer.
I have some cross-platform experience: a backup system for Linux/Windows, a monitoring system for Linux/Windows/MacOsX, a cross-platform trading system, just to name a few.
For client software, I propose a SSL connection, maybe HTTP-like, exchanging json-like messages or protocol buffers messages.
For server software, an asynchronous server should accommodate a large number of clients.
I'm not exactly sure why server would adopt clients and name them, I'd rather think that clients should provide their names and authentication credentials. Using MAC address as identifier might not provide unique identifiers (even though standard says MACs are unique, in practice they are not).
Looking forward to hearing from you,
Razvan