You won't be able to create an absolute server-less solution (as far as I know). One of the users will have to act as the server, and the other user will connect to them as the client.
This involves having to know IP addresses, but you could also set up your own server that runs all the time, and just let them connect to that, but that isn't what you want
Hopefully someone else can come up with a better solution!