Specifically, I’m looking for the best practice way for two machines to exchange data packets (250 – 512 bytes) in a string/plain text format, without the need for a server. The idea being they should be able to communicate remotely using a single installed application. As one application on one machine carries out an action/event, the other machine is sent a notification of activity automatically producing a synchronised activity log between the two machines.
The caveats are:
-
IP’s are dynamic, and user may run the application in multiple locations with differing IPs each time the application is run. Therefore the application needs to be able to check the IP of the machine it’s on and broadcast this to the other machines whose IPs it already knows which would be the last known IP update from the other machine. Is there a way to overcome ISPs using CGNAT so that messages are sent to the correct machine on the ISPs network?
-
Messages do not need to be encrypted but digital signatures would be required where multiple machines are broadcasting activity to all others on the net. And confidence in which machine carried out which activity is a must.
As a bit of background, I’m trying to buid a application that will enable teams users to consume data from multiple sources in large volumes, process and analyse this data and then inform all of machine running linked applications that this data has been processed. The aim being that no two machines process the same data, but all machines keep a log of the processing that was conducted.
I don’t want to use a server to keep hardware/running costs down, as well as the simple technical challenge of keeping things decentralized. I appreciate this could be made alot simpler with the use of a single server, acting as a central coorindating node for the network but that kind of defeats the point.
Is there a language that can handle everything from GUI to over the internet communication? What model is best use? any other thoughts or input on how the above task could be accomplished? Is there an existing application that already does this?
In terms of wat’s been built so far: nothing other than the theory and the idea. The application that consumes the data and processes it has already been built in Python, java and C#; but the real need here is the decentralized data exchange between remote machines.
Matthew Paines is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.