Actually, the best place to look for these questions is here. It's a nice networking FAQ.

If you decide to go using UDP, then you don't need a particular library, WinSock is quite easy to use. I've wrote two wrappers myself (TNetCom and TNetExchange), which both provide guaranteed packets and the second one also assures correct packet ordering.

I'd also recommend against using Indy, as it has quite bad implementation IMHO and is not easier to use than WinSock itself.

P.S. Two clients can communicate with each other using Client-Server mechanism (so one client is server and another is client). In this case, "two clients" is a wrong way to say it; the correct term would be "two applications".