If you use a Windows Azure Hosted VM, it's exactly the same as putting it on any other infrastructure. You write a .NET app that interacts with the world via TcpClients (or similar) and other applications connect to your external Windows Azure IP address or domain name.

You can design the protocol between the two - there are no restrictions as to what packets you broadcast out or receive in - so long as it's legal.

There is no restrictions as to what you can charge other people to use your application; however managing your clients, safely processing payments and so on are all down to you. Microsoft won't (by default) provide you with a way of taking payments from customers.