Backdoor Game Server bgs това е сървърска програма



Дата10.04.2018
Размер59.22 Kb.
#66638
ТипПрограма
Курсов проект № 1 по “Интернет програмиране с Java”

1.3. Backdoor Game



Автор: Николай Недялков

Версия: 0.9

Последна промяна: 22.03.2004

Целта на проекта е да се напише многонишково клиент/сървър приложение на Java, съответно BackdoorServer и BackdoorClient. Комуникацията между двете приложения клиент и сървър ще се извършва посредством протокола TCP.


  1. Backdoor Game Server - BGS


Това е сървърска програма, която ще изпълнява определени операции и команди и ще връща обработен резултат при клиента. Сървърската програма е самостоятелна Java програма, която се стартира на определен компютър и приема заявки на първоначално зададен TCP порт. На този порт тя първо авторизира съответния клиент и започва да приема и обработва заявките му. Трябва да позволява работа на много клиенти едновременно, използвайки стандартните средства на Java за разработка на многонишкови приложения.

При стартирането на програмата се задава порта, на който да приема заявки, [username] и [password], характеризиращи първоначално включен потребител, както и текуща директория за сървъра.


BGS включва следните основни модули :


    • Потребителски модул – този модул трябва да предоставя възможност за създаване, изтриване и редактиране на потребители на сървъра.

    • Файлов модул – този модул трябва да предоставя възможност за изтегляне, изтриване, преименуване и прикачване на файлове и директории. Също така трябва да има възможност за смяна на разглежданата директория на сървъра, както и за предоставяне на съдържанието й (файлове и поддиректории).

    • Административен модул – този модул трябва да предоставя възможност за изпълнение на програми на компютъра, на който е стартирано сървърското приложение.

Основните модули, които включва BGS, са потребителски, файлов и административен. При иницииране на първоначална връзка към BGS, клиентът има достъп единствено до потребителския модул. След успешно изпълнение на командата LOGIN (т.е. ако изпълнението не завърши със съобщение за грешка), потребителят придобива право за изпълнение на команди към останалите модули на сървъра – Файлов и Административен. Наложени са ограничения относно командите и последователността, в която могат да се изпълняват, в зависимост от групата, към която принадлежи потребителя и специфичните изисквания за всеки модул.





  1. Потребителски модул.

Този модул е предназначен за създаване, изтриване, авторизиране и *редактиране на потребителите на BGS.



Потребител на BGS се характеризира със следните задължителни полета:

  • Username – текстово поле не по-дълго от 15 символа и не по-малко от 1. Допустими символи са : [‘a’..’z’, ‘0’..’9’,_]. Полето не е чувствително относно малки или големи латински букви.

  • Password - текстово поле не по-дълго от 15 символа и не по-малко от 6. Допустими символи са всички символи. Полето е чувствително относно малки или големи латински букви.


Модулът разпознава следните команди:


  • REGISTER [username] [password] – тази команда регистрира (създава) потребител на сървъра с потребителско име [username] и парола [password]. Потребители могат да се създават само ако преди това е била изпълнена успешно командата LOGIN.



  • DELETEUSER [username] – изтрива съответния потребител със зададеното потребителско име. Потребители могат да се изтриват само ако преди това е била изпълнена успешно командата LOGIN.




  • LOGIN [username] [password] – командата указва на сървъра, че потребителят със съответното потребителско име и парола иска да осъществи връзка и да влезе в команден режим. При несъответствие в потребителското име или парола се връща подходяща грешка – Wrong username or password.



  1. Файлов модул.

Този модул предоставя възможност за изтегляне (download), изтриване, преименуване и прикачване (upload) на файлове и директории. Трябва да има и възможност за смяна на разглежданата директория на сървъра, както и за предоставяне на съдържанието й (файлове и поддиректории). С файловия модул може да се работи след като е преминала успешно авторизация.


Модулът разпознава следните команди:


  • DOWNLOAD [remotefile] [localfile] - командата приема два задължителни параметъра. Може да се изпълнява от всеки авторизиран потребител и сваля (download) файл от сървъра указан с параметъра [remotefile], като файл на локалния компютър указан с параметъра [localfile]. Забележка: Тази команда се изпълнява съвместно от сървърското и клиентското приложение, защото не е възможно сървърът директно да пише по файловата система на клиента. Клиентът трябва да поддържа някакъв механизъм за записване на получения от сървъра файл, който се връща в бинарен вид при успешно изпълнение на командата download.




  • UPLOAD [localfile] [remotefile] - командата приема два задължителни параметъра. Може да се изпълнява от всеки авторизиран потребител и upload-ва файл на сървъра указан с параметъра [remotefile], който се намира на локалния компютър като [localfile]. Забележка: Както при download, е необходимо командата да се реализира съвместно от клиента и сървъра, защото сървърът няма директен достъп до файловата система на клиента. Необходимо е клиентът да изпраща съдържанието на посочения файл по някакъв начин на сървъра.




  • DIR – командата не приема параметри. Може да се изпълнява от всеки авторизиран потребител и връща списък с всички файлове и поддиректории на текущата директория.




  • DELETE [filename] – изтрива файл. Командата приема един задължителен параметър – името на файла, който да бъде изтрит от сървъра. Командата може да се изпълнява от всеки авторизиран потребител.




  • CHDIR [dirname] – променя текущата директория. Командата приема един задължителен параметър – името на директорията, която трябва да стане текуща. Командата може да се изпълнява от всеки авторизиран потребител.




  • PWD – командата не приема параметри. Като резултат от изпълнението й се връща текущата директория, към която сочи сървъра.




  1. Административен модул.

Този модул предоставя възможност за изпълнение на програми на компютъра, на който е стартирано сървърското приложение.



Модулът разпознава следните команди:


  • EXECUTE [filename] – командата приема един задължителен параметър : [filename] е файлът (програма), който да бъде стартиран. Командата може да бъде изпълнявана от всеки авторизиран потребител.


Забележка:
Като възможност за съхраняване на информацията за всеки потребител може да се използва текстов файл или структура в паметта.
  1. Backdoor Game Client - BGC

Клиентската програма трябва да предоставя възможност на потребителя да се свързва със сървърската програма да може да се авторизира и да може да изпълнява заявки към сървъра във вид на команди, както и да получава резултата от изпълнението им.


  1. Примери

1. Стартиране на BGS програмата.


java –cp . BackDoorGame 6666 admin !!pencho c:\windows
От командния ред указваме на java да стартира програмата BackDoorGame, със следните параметри:

6666 – номер на TCP порт, на който сървърът ще приема заявки

admin - потребителско име, което ще бъде регистрирано първоначално

!!pencho - парола на съответния потребител

c:\windows - първоначална текуща директория за файловия модул.
2. Изпълнение на команди и резултат от изпълнението им към различни модули.
2.1 Потребителски модул.
Авторизиране в BGS

=> LOGIN baba stara – авторизира потребителя baba.



<= OK

При неуспешна авторизация



<= Wrong username or password
Регистриране на потребител

=> LOGIN admin !!pencho



<= OK

=> REGISTER niki AQ!@3__Nn - добавя нов потребител niki.



<= OK
2.2 Файлов сървър

Показване името и пътя на текущата директория

=>PWD

<=Current directory is c:\windows
Показване съдържание на текущата директория

=>DIR



<=
Directory of C:\WINDOWS
03/21/2004 04:15 PM .

03/21/2004 04:15 PM ..

03/21/2004 04:11 PM 0 0.log

03/03/2004 12:32 PM addins

03/17/2004 02:12 AM 910 ae2000pr.ini

03/17/2004 02:03 AM 223 ao97pr.ini

03/03/2004 08:25 PM aod

03/03/2004 11:13 AM Application Compatibility Scripts

03/03/2004 07:58 PM AppPatch

03/03/2004 12:43 PM 9,793 aspnetocm.log

03/25/2003 02:00 PM 1,272 Blue Lace 16.bmp

03/08/2004 01:38 AM Cache

03/03/2004 12:43 PM 13,398 certocm.log

03/25/2003 02:00 PM 82,944 clock.avi

03/03/2004 11:13 AM Cluster

03/25/2003 02:00 PM 17,062 Coffee Bean.bmp

03/03/2004 12:43 PM 31,211 comsetup.log

03/03/2004 12:32 PM Config

03/03/2004 12:32 PM Connection Wizard

03/03/2004 11:24 AM 0 control.ini

03/03/2004 07:17 PM 73,728 copyfstq.exe

03/03/2004 11:14 AM Cursors

03/10/2004 02:20 AM 3,008 dasetup.log

03/03/2004 12:40 PM Debug

03/25/2003 02:00 PM 2 desktop.ini

03/06/2004 09:39 PM 238 dfm.ini

03/03/2004 08:03 PM 229 DHCPUPG.LOG

03/25/2003 02:00 PM 54,784 dialer.exe

10/11/2001 09:41 PM 149 DiViDiX online.url

03/03/2004 07:02 PM Downloaded Installations

03/03/2004 12:32 PM Driver Cache

03/03/2004 07:17 PM 94,636 dropcpyr.dll

03/03/2004 11:15 AM 761 DtcInstall.log

...
Командата е аналогична на командата dir под DOS и конзолата на Windows. Изискват се три колонки – дата и час на файла, големина на файла (или ако е директория) и име на файла (или директорията).
2.3 Административен модул
Изпълнение на програма на сървъра

=> EXECUTE c:\windows\calc.exe



<= Program "c:\windows\calc.exe" started.

Каталог: inetjava -> projects
projects -> Програма на Java, която използвайки възможностите на пакета java net реализира tcp forward сървър с възможност за администриране. Административна част на сървъра
inetjava -> Многонишково програмиране и синхронизация на нишки в Java
projects -> Програма на Java, която използвайки възможностите на пакета java net
projects -> Програма на Java, която използвайки възможностите на пакета java net
projects -> Програма на Java, която използвайки възможностите на пакета java net
projects -> Интернет програмиране с Java
projects -> Интернет програмиране с Java
projects -> Интернет програмиране с Java
projects -> Програма на Java, която използвайки възможностите на пакета java net


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница