I hope my title is sufficient and that this is the right place to post this question. I am a self taught Java developer and I have an application that I am trying have it communicate to a "License Server" to verify that the key is correct. To simulate this, I want the application on one computer to be able to talk to one on another computer. I have achieved this via using java socket programming while on the same network. My next goal is to have this work while on different networks.
One method, that I understand more than any other is port forwarding. For testing purposes, I should use my router's external IP for the socket to call out to, then I should set up my router to forward that incoming traffic to my "Server" Computer's IP and port. In theory it should work. However, being that I am operating with 2 AT&T homebases, I have stumbled upon that AT&T disables port forwarding for these type of routers, even though the UI for the router has the capability to do such.
This is very frustrating as I can not achieve a proof of concept with my current setup. So here is my question: In what way(s) can I achieve application communication over different networks other than port forwarding?
I've tried researching proxy servers and ssh but I don't really know how to apply that so that I can test, nor do I fully understand them. I've also read that 3rd software might get me around AT&T stubbornness with port forwarding but I'm not too kin on that kind of solution unless it is just necessary.
I've taught myself Java, now it's time to learn some networking. A walk through of how to achieve this would be most helpful and appreciated. Thanks for your help!