A lot of chat solutions are based around SIP. Perhaps you could consider SipP as a test solution.
Usually chat solutions have a registration function which is client to server, but then the actual chat session is peer-to-peer which doesn't place a lot of load on a core registration server. If your solution, on the other hand, goies through a server for every message then you do have a larger chat problem to test. See SipP above and also consider reusing your own client code in a DLL style solution.