The short and sweet version of the question: how do server processes access client processes that may be behind a router?
The long version: Not an Ubuntu question, really...more of a general networking question, however, I haven't had much luck getting this question answered on StackOverflow or the StackExchange network engineering site. I'm trying to create toy UDP server/client programs for an undergraduate research project I am working on. I've got my server up and running on my Raspberry Pi, but I'm having trouble getting messages back to the client. Specifically...
- start server
- client sends message to server on accept socket
- server receives message, creates connection thread on new socket and sends ack back to client
- client never gets ack from server
The client never receives the ack because it is sent to the client's public IP address, AKA the router. The router has no idea what to do with the message, so it just drops it. I feel like this probably isn't a novel problem and there has to be some sort of well-defined solution to it, I just don't know enough about networking to even know where to start. I'd like the solution to be a general one...that is, I'd like to figure out how to establish communication between a server and client regardless of whether or not the client is behind a router.
Bookmarks