P2P is an adapter that can run under a GUI as a WinBoard engine, in order to provide a peer-to-peer connection through another GUI (using the same adapter). This then allows you to play games without mediation of an Internet Chess Server.
To use P2P, install it (i.e. p2p.exe) as a (v2) WinBoard engine in your GUI. The engine command does not need any parameters, but an IP address as last parameter will make it automatically seek a connection to the specified host computer at startup, without becoming a server itself. With additional arguments "-p portnr" you can alter the port on which it listens to incoming connections. (Default port number is 27015.)
After starting the GUI and loading p2p.exe as (first) engine, it sets itself up as server (you might have to open firewalls and set up port translation on your router or modem to make it reachable from the outside world!). You can make connection to such a p2p server elsewhere by opening the GUI's Engine Settings dialog to see the p2p options. There you then type the IP address of the machine you want to connect to, and press the Connect button. A GUI popup should then inform you if the connecting succeeded.
After a connection has been made, you can start playing against the 'engine', which in fact now is the remote opponent. So if you want him to play white, you order the engine to play white, and if you want to play white yourself, you just play a move. If the opponent beats you to it, his color proposal (and possibly chosen variant) will be presented to you in a GUI popup. You can then comply, or reject his proposal by ignoring it and starting a different game (which will then be put to him as a proposal, etc.)
After a proposal is accepted (by complying with the settings), the game can proceed through exchange of moves. You can exchange text messages by using the 'Send line' button in the Engine Settings dialog of p2p: if you first wrote a Chat line in that same dialog it will be sent (and appear as 'engine ouput' on his side), while if you leave that line empty, the GUI will prompt you for a text line in a separate popup.
Taking back a move can be a bit cumbersome, because most GUIs don't allow takeback during your opponent's move. So if the opponent takes back, it must be his turn (he did not like your reply to his move...), and you will have to step back two ply through the game by hand, use Truncate Game to clip off these moves, and then restart the game against the engine (as the editing of the game usually puts the engine back in force mode).