[Delphi] Odczytywanie danych - Indy TCPServer

0

Witam,
Jak odczytujecie dane przychodzace na server?? jesli dane nie maja na koncu CRLF ReadLn odpada. jest taki fajny sposob a mianowicie:

 for i := 1 to AContext.Connection.IOHandler.InputBuffer.Size do
  bufor := bufor + AContext.Connection.IOHandler.ReadChar; 

jednak w momencie przyjscia jakiegos znaku sposob ten obciaza procesor na 100%.

0

Ja robie tak ze najpierw ustalam jakie sa mozliwe czynnosci do wykonania na serwerze
i ustalam sobie jakies komendy dla nich (tak zeby wszystkie mialy ta sama dlugosc np 5 znakow)

i tak na przyklad:

Wrzuc plik na serwer ULOAD
pobierz plik z serwera DLOAD
podaj czas serwera STIME
itp

dodatkowo mozna ustalic ze po 5 znakach komendy podawana jest ilosc danych jaka jest przesylana
wraz z ta komenda (np rozmiar pliku ktory chcemy dodac na serwer, lub dlugosc nazwy pliku ktory chcemy pobrac...) to wszystko trzeba zaplanowac:/

no i nastepnie piszemy program i czekamy na polaczenie.

jak sie pojawi to czekamy tak dlgo az bedzie odebrane 5 znakow (lub tyle ile sobie wymyslilismy)
nastepnie porownujemy je z dostepnymi komendami.
Np okazuje sie ze przyszlo DLOAD wiec sprawdzamy kolejne n znakow i znich dowiadujemy sie jak dluga bedzie sciezka do zadanego pliku i czkamy az w buforze pojaiw sie wymagana ilosc danych.

jak tylko zostanie skompletowana potrzeban ilosc danych, wyciagamy ja z bufora i odczytujemy. i tak mamy sciezke do pliku.

Teraz trzeba go juz tylko wyslac ale to juz inna para kaloszy...

ja tak robie i jakos dziala... chetnie poznam inne Wasze metody
moze moj pomysl jest kiepski....?
napiszcie co o tym sadzicie

1 użytkowników online, w tym zalogowanych: 0, gości: 1