Share My Creation JRDC2 Interface - Remote Server Manager

Hello everyone :)

*Thank you Erel for making this possible for us :)

while we are working on the Skype & Twitch alternative project we had to modify the features of the JRDC2 a lot of times.
and each time we did that we had to open the server, run CMD read the logs file, test the connections and the timeouts, and sometimes the JRDC2 was not running and we hadto keep checking it, so we did this :)

1614785659209.png


You can do the following :
Control the server & the JRDC2 remotely :

1- Stop JRDC2
2- Pause it (no more in/out until it was un-paused)
3- Restart JRDC2
4- Make it run at start up of the server (sometimes we restarted the server so we had to log in using ssh, then open the anydesk then run the service which can take a lot of time)
5- Restart the Server (windows server)
6- Block/unblock an ip that tries to connect
7- you can take screenshots of the server (Remotely)
8- you can view real-time logs
9- check if the server is running (automatic checkup every 5 minutes)
10- how long has the server been running
11- how many requests so far
12- Multiple JRDC2 Connections (more than 1 JRDC2 Server)

*A very important feature that it's a remote connection meaning you don't have to install the JRDC2Interface on the server, just install it on your pc and put the JRDC2 link and that's it :)

We had a problem and we created a solution, and am 100% sure a lot of developers have the same issues.
We would like to announce it as a donation ware meaning just donate what ever you would like and we will send you the Modified version of the JRDC2 and other source code of the JRDC2Interface.


The project is now for free :)

Download the source code from the below (Copy & Paste the URL in your browser) :
https://mega.nz/file/kkc00ZDC#ZDi7hPiy_RzkXirwHeMYBMszk2Wt5iWGXIC5M_bbTVI
:)

Server Snapshot Feature (inspired by The Teamviewer alternative project :) )


If you have any features you want to be added please post them here :
 
Last edited:

gpa

Member
Licensed User
Longtime User
Is this independent of the database / server type - ie it works with jrdc2 on a linux / mysql server?
 

sfsameer

Expert
Licensed User
Longtime User
Is this independent of the database / server type - ie it works with jrdc2 on a linux / mysql server?
Hello,

1-It works/controls the JRDC2 so it it doesn't matter what type of database is.
2-Tested on windows server, windows 10 and windows 7 but am not sure about the linux

Thank you,
Saif
 

sfsameer

Expert
Licensed User
Longtime User
Thank you for donating everyone :)

The project is released and we have sent everyone that donated the download link :)
 

Mostez

Well-Known Member
Licensed User
Longtime User
downloaded, but when trying to open it, I get this message 'the archive is either in unknown format or damaged'
 

Chris2

Active Member
Licensed User
Thanks for posting the code for this, and your other apps @sfsameer. As a novice, I have learned so much from understanding your code and that posted elsewhere in these forums.
One bit I don't quite understand is the check for a blocked IP in the RDCHandler class:
B4X:
GlobalParameters.mpTotalConnections.Put(req.RemoteAddress,req.RemoteAddress)
    
    For Each k As String In GlobalParameters.mpTotalConnections.Keys
        If GlobalParameters.mpBlockConnection.ContainsKey(k) Then
            GlobalParameters.mpLogs.Put(DateTime.Now,"Rrequest from blocked connection : " & k & "   - Time : "  & DateTime.Time(DateTime.Now))
            Return
        End If
    Next

Can you explain to me why do you need the to iterate over the GlobalParameters.mpTotalConnections.Keys here?

Couldn't you just check req.RemoteAddress against the IP addresses in mpBlockConnection?
So just
B4X:
If GlobalParameters.mpBlockConnection.ContainsKey(req.RemoteAddress) Then
            GlobalParameters.mpLogs.Put(DateTime.Now,"Rrequest from blocked connection : " & k & "   - Time : "  & DateTime.Time(DateTime.Now))
            Return
End If
 

sfsameer

Expert
Licensed User
Longtime User
Thanks for posting the code for this, and your other apps @sfsameer. As a novice, I have learned so much from understanding your code and that posted elsewhere in these forums.
One bit I don't quite understand is the check for a blocked IP in the RDCHandler class:
B4X:
GlobalParameters.mpTotalConnections.Put(req.RemoteAddress,req.RemoteAddress)
  
    For Each k As String In GlobalParameters.mpTotalConnections.Keys
        If GlobalParameters.mpBlockConnection.ContainsKey(k) Then
            GlobalParameters.mpLogs.Put(DateTime.Now,"Rrequest from blocked connection : " & k & "   - Time : "  & DateTime.Time(DateTime.Now))
            Return
        End If
    Next

Can you explain to me why do you need the to iterate over the GlobalParameters.mpTotalConnections.Keys here?

Couldn't you just check req.RemoteAddress against the IP addresses in mpBlockConnection?
So just
B4X:
If GlobalParameters.mpBlockConnection.ContainsKey(req.RemoteAddress) Then
            GlobalParameters.mpLogs.Put(DateTime.Now,"Rrequest from blocked connection : " & k & "   - Time : "  & DateTime.Time(DateTime.Now))
            Return
End If
Hello Dear,

You have to iterate because as you can see in the line below there is the "k" which you can only get it if you loop in the map

B4X:
GlobalParameters.mpLogs.Put(DateTime.Now,"Rrequest from blocked connection : " & k & "   - Time : "  & DateTime.Time(DateTime.Now))

Without the loop you won't be able to get the Key (K) to register the log.

Edit :
You can use the below code without the loop :

B4X:
If GlobalParameters.mpBlockConnection.ContainsKey(req.RemoteAddress) Then
            GlobalParameters.mpLogs.Put(DateTime.Now,"Rrequest from blocked connection : " & req.RemoteAddress & "   - Time : "  & DateTime.Time(DateTime.Now))
End If

Thank you,
Saif
 
Last edited:
Top