Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to create a "TCP/IP relay" server?
I am using Indy in a server for handling external equipment which is monitoring dams and waste dumps for leakage.
This system might be powered by solar cells on very remote locations.

The server has been ported from Delphi on Windows to FreePascal on Linux and runs on a RaspberryPi4 device.
The old client on Windows works also with this new server but to accommodate the differences between Windows and Linux I have had to also port the client application to FreePascal/Lazarus and add Unix/Windows difference handling.
When doing this I have replaced the "native" Delphi TCP/IP components with Indy server and client objects in both applications.

So now (almost) everything is running as intended but I have run up against a connectivity problem...

When the system is deployed it will use a mobile broadband connection to the Internet and I have found that the way these are done today often (always?) do not include for the router to get a public IP address so that one can use DDNS to find the address and connect to the server on RPi4 for configuration, monitoring and data download.

So now I wonder if there is a way to use Indy to make some kind of "relaying server" that could run on a Linux box with public IP to which the RPi4 remote server can connect and to which our client could also connect and specify which system it wants to talk to, whereupon the relaying server channels all traffic from the client over to the connected remote server and vice versa (if it is actually connected) so that both can start talking to each other using our already established specific protocol?

I don't know what this kind of operation could be called so it is hard to google, I hope you get the idea anyway...

(Also posted on the Lazarus forum)

Messages In This Thread
How to create a "TCP/IP relay" server? - by BosseB - 04-24-2021, 01:42 PM

Forum Jump:

Users browsing this thread: 1 Guest(s)