Hi guys, here is a first almost usable version of Korg Remote Desktop (KRD).
www.lazaruspascal.it/download_personali/korg_remote_desktop.zipI started this project hoping to learn as much as possible in creating a software similar to "Team Viewer".
Of course KRD is open source and for the moment tries to manage everything with UDP broadcasts.
In addition to the sources already compiled for the following platforms.
linux 64 bit (ubuntu)
win 32 bit
win 64-bit
mac os x 64 bit (cocoa)
The source has the following dependencies
LCL
laz_synapse
dcpcrypt
LazMouseAndKeyInput (if you use cocoa, use the version you find at this link:
www.lazaruspascal.it/download_personali/mouseandkeyinput_cocoa_support.zip)
Seguono le "custom options"
-dUseCThreads : required for multithreading to work
-dWriteDebug : write exceptions to terminal when they occur (mainly for debugging)
-dGetScreenInMainThread : it is used to get the screen content from the main thread and not from the secondary ones. This is because on ubuntu if I don't use this option it makes me crash the program
-dMyVersion : always
-dSendWithMemory : used to send data as tmemory and not as tstring
-dSendWithCompression : used to compress memories (never)
-dFilterFromIpPort : always
At startup the program tries to establish its own ip address both local (it works only for win, other operating systems always report 127.0.0.1) and remote (does not use udp in this case). It is just for testing faster.
At present it works fine in the local network (I hoped it would also work with clients on the internet (because I thought I had correctly implemented UDP Hole Punching, but my few tests in this regard have proved me wrong)
If you open the program you will see a value "123Pwd456", it coincides with the password to encrypt the connections (aes 128 bit). If you remove the password, everything will be transmitted in clear text.
Test hypotheses
Client "A" who wants to share their desktop (ip: 192.168.1.6)
I open the program, I press the "invert" button, then change the remote ip with the value "192.168.1.11", then I press the "start" button. The program will end up in the System Tray
Client "B" who wants to access the remote desktop (ip: 192.168.1.11)
I open the program, change the remote ip with the value "192.168.1.6" and press the "start" button
You should now see the first results. At present the program has the following limitations
1. only handles udp broadcasts and udp hole punching doesn't work (someone network expert who helps me solve the mystery)
2. the use of the keyboard and the mouse is not optimized (for example the dragging of a remote window does not work, while the click and the double click would seem to be).
3. I have yet to implement file transfer
4. I have yet to implement the transfer of clipboard content.
Advice and help are welcome. I develop the program only for study, but if over time it worked well, I do not deny that I could also use it to completely supplant other programs of the kind and not have to pay licenses for them anymore.
KRD is open source and will always remain open source.