[Delphi]Wysyłanie do serwera


(Mr Hektor) #1

Witam. W aplikacji serwerowej jest instrukcja if, która sprawdza co przesłał klient i w zależności od tego wykonuje działanie, w ten sposób:

var

  polecenie : string;

begin

polecenie := Socket.ReceiveText; //Tu musi być wysłana komenda czyli powiedzmy "proces"

if polecenie = 'proces' then 

  KillTask(nazwa procesu); //A tutaj już musi być wysłana nazwa procesu z pola Edit

end;

Ale w kliencie są powiedzmy 2 przyciski, po naciśnięciu jednego klient wysyła do serwera wiadomość "proces" czyli serwer już wie, że będzie wykonywana instrukcja zamykania procesu, a po naciśnięciu drugiego, jest wysyłana wiadomość powiedzmy "zamknij" i komputer jest wyłączany. Z tym drugim nie ma większego problemu, ale jak zrobić, że po naciśnięciu pierwszego będzie wysyłana najpierw wiadomość "proces", żeby serwer sprawdził ją if em a później nazwa procesu który chce się zamknąć (to oczywiście już z pola Edit) ? Mam nadzieję, że jasno to opisałem. Będę wdzięczny za pomoc.


(Jakub Nekro) #2

Prosta piłka.

Do wiadomości musisz dopisać dodatkowe dane po ustalonym znaku. Na przykład:

proces|cmd.exe

W tym momencie po pobraniu Socket.ReceveText; najpierw sprawdzasz czy jest znak |. Jeśli tak to polecenie = wszystko do tego znaku. Potem wyodrębniasz dane już w ifie.


(Mr Hektor) #3

Hmm A co tu jest źle ? ; p

Klient.Socket.SendText('proces| ', Edit2.Text);

Edit

Ahh racja, dzięki.


(Jakub Nekro) #4

Zamiast przecinka zrób +


(Mr Hektor) #5

Dzięki zrobiłem to wysyłanie ze znakiem i działa ; )


(Jakub Nekro) #6

Proste rozwiązania są najskuteczniejsze, jeśli jednak projektujesz coś naprawdę dużego to warto przemyśleć cały system i zrobić coś na wzór własnych pakietów (pomoże to w rozwijaniu systemu w przyszłości)


(Mr Hektor) #7

Nie, mi tylko nie chce się chodzić i to jest mały programik do zarządzania komputerem w drugim pokoju ; ) Ale gdybym chciał to rozwinąć przemyślę jakieś bardziej zaawansowane rozwiązania ; )