OMFG! Its working!

I thing the worst part is over, i understand now how it works!
EDIT
Ok, i have a "stable" server now, compiled and able to accept multiple client conexions.
Before try to make the conection secure (SSL implementation) i will focus on try to know how it works in real life. I mind, with real IPs. How the server and the client could know their own IP? Not netwrok IPs (127.0.01) but internet ones.
Also, i dont have experience with p2p networks. To make it stable, should i add one server and many client conecctions in the program?
I cant believe that in few hours i was able to do all this! Thanks a lot!
EDIT 2: I was able to get the client local IP when it connects using:
Var
Newclient : string;
begin
Newclient := AContext.Connection.Socket.Binding.PeerIP;
end;
But im only able to work using local IPs (IE 10.0.0.35) If i set the client to connect to my external IP (ie 241.210.x.2 it did not work (my server is open of course) How i can fix this?
Also, if i set the IP for my port := 241.210.x.2 i get an error that address and port are already in use

I checked the internet the last hours but i was unable to find nothing to fix this.