Dave-ee's Interactive Shell
What's DISH?
It's a program that allows you to remotely control a computer running the same program, seeing the screen as if you were right in front of it, interactively.
How does it work?
One computer hosts a connection on a specific channel (default: 5317), and clients listen on that channel for any functions that make changes to the screen, allowing the clients to see any program without actually having the program. The clients can send events to the host on a channel the host listens to (default: 5318), allowing clients to control the computer remotely.
How many clients can see the host at any one time?
Theoretically? Infinite. Practically? Depends on your processing/RAM power, but it would be a lot. This is because the host doesn't actually keep track of all its clients, it just sends the data over a channel which clients listen to so any client that listens on the channel can read the data.
What else does it do?
DISH has an in-built menu as well which allows you to not only see what channels you are listening/transmitting on, but also allows you to change the channels live. The menu can be pulled up by pressing the menu button (default: Left Control). The host's menu can only be accessed by someone who is directly at the computer, so clients cannot pull up the host's menu, only their own. The host can also change the channels it is listening/transmitting on, meaning clients will also need to change their channels. Keep in mind that the menu acts as a 'pause' button, the computer cannot send/receive events while the menu is open. This goes for the host as well.
DISH also has a view-only feature. This means that the host can have view-only mode enabled which means it ignores any events the clients send to it, meaning that the host can only be controlled directly, while clients can see the screen live. This is off by default, but it is taken as an argument in command-line.
When I first connect to a host my screen is black with some text at the top but the host's screen isn't black. Why is this?
This is because the host hasn't drawn anything on it's screen since you have connected. If the host has it's shell up you can type 'clear' to clear the screen and you will see the same shell as the host. This is a small bug that I am still working on a fix for. The problem is it has to constantly redraw the screen everytime a new client starts listening on the channel, however that is almost impossible. I'm working on a workaround.
Usage:
dish host [view-only] [HostChannel] [ClientChannel]
dish join [HostChannel] [ClientChannel]
dish help
The extra arguments are optional, so if you want to keep defaults then just use 'host' or 'join' as arguments.Images:
http://imgur.com/a/2RPJE
Credits (also found in the program's commenting):
- Bomb Bloke
- KingofGamesYami
- The Crazy Phoenix
- Lupus500