The server client program implements a Flutter Client and Python based server for remote file management. The target cases include creating, deleting, viewing and editing a file. Additionally the user can execute restricted
remote commands at the server. The project makes use of Transmission Control Protocol (TCP) sockets for communication.
Server actions avoid direct native system calls making the server platform independent. Flutter codebase, by default is developed with platform independency making the entire project platform independent
To start server run
server.pyc
.Alternatively, from /server_script/ execute the following:python server.py
🚩 All server actions on directory
./reactor/
🔌 Default port is set to:65432
.
Server Programming Interface:
Server Action | Command | Response |
---|---|---|
Request Path | cd |
Absolute Server Path. (Time out of 500ms ) |
Create File | cf {filename} |
1 indicating successful operation else 0 |
View File | vf {filename} |
{file data} 1 if successful else 0 |
Delete File | df {filename} |
1 indicating successful operation else 0 |
Edit File | cf {filename} {data} |
1 indicating successful operation else 0 |
Execute Command | rc {command} |
Execute command on the server. 1 indicating successful operation else 0 |
Log Out | end |
Closes the active connection. |
Shutdown Server | shutdown |
Disconnect and shutdown the server. |
Client side leverages the functionalities of Flutter Framework and Dart combined. The TCP logic is purely built over dart or specifically using Socket
class of dart:io
library.
✔️
android.permission.INTERNET
granted at install for target android devices.
⏳ Default communication timeout set to500ms
.
Server Live with MyDevice connected.
1 Connection Page | 2 Home page (a) | 3 Create file error | 4 Create File | 5 View File Page | 6 Edit File Page | 7 Edit Status Dialog | 8 Home Page (b) | 9 Raw Command Dialog | 10 Connection Page Error
It has been decided the repository be archived after long-time inactivity. The repository will be archived on the July 1st, 2023.
Made with ❤️ by Emmanuel Jojy.