I'm working on a multiplayer module of my game engine. I don't have any code to post because both the server and the client are sending and receiving what I want, so this is a much more theoretical question. I've been trying to find the answer on the internet, but nothing has seemed to point me in the right direction.
Basically, I have a base server that one is able to connect to in order to see stats, connect to other GAME servers, and so on. This entire client-server model is TCP. However, the problem comes with my game server. In this case, TCP connection between all players and the server is established on a certain port, and I send packets to and from the server on another port through UDP. The reason for this is that so I can seperate important messages from less important "State" updates. Locally, this works fine, however when I try this "over the internet", the packets are sent but not received.
The TCP connection does get established over the internet, but the UDP packets do not arrive at their location. I have tried adding rules in Windows Firewall (outbound and inbound), and I've done port forwarding on all systems. I know for a fact its not a problem with my code.
Both systems are running on 64-bit Windows 7. I'm sending 64 Byte packets 40 times a second and not one is getting through, so its not a "packet drop" problem.
Finally, my question is: What are some other things that could block UDP packets? What are things that I need to take into consideration? I'm past the forgetting to bind() stage and such.
I understand that this is a very theoretical question and broad question, but I'm not sure what else to do as the problem does not lie within the code any more. I must be missing something simple. Any recommendations or advice is greatly appreciated. Again, sorry for how broad the question is, but this is my last resort.
Thanks!