Konflikt Zdazen w programie...

0

napisalem sobie serwerek i klienta... jednym z wielu polecen jest screen. wysylam polecenie, server robi screena i przesyla go do klienta... i tutaj zaczynaja sie dziac dziwne rzeczy... otoz mam takie cos w ClientRead ktore odbiera obraz...

if not Downloading then begin

    Socket.ReceiveBuf(StreamHeader, SizeOf(StreamHeader));
    ImgStream := TMemoryStream.Create;
    ImgStream.Position := 0;
    ImgSize := StreamHeader.Size;
    Downloading := True;
    Exit;
  end;

  //Zapisywanie bufora

  Received := Socket.ReceiveBuf(Buffer, SizeOf(Buffer)-1);
  ImgStream.write(Buffer, Received);
    if ImgStream.Size >= ImgSize then begin
     ImgStream.SaveToFile('C:\screen.jpg');
     img.Picture.LoadFromFile('C:\screen.jpg');
    ImgStream.free;
    Received:=0;
    ImgSize:=0;
    Downloading:=false;
  end;

i to normalnie dziala jezeli nic poza tym nie ma... czyli w Clientread jest tylko jedna procedurka odbioru danych(bufforu). Niestety ja mam rowniez w ClientRead rzeczy od innych funkci. Komendy rozdzielam z jednego tekstu:

s := Socket.ReceiveText;
        try
        cmd := copy(s,1,pos(#31,s)-1);
        delete(s,1,pos(#31,s));
        lparam := copy(s,1,pos(#31,s)-1);
        delete(s,1,pos(#31,s));
        rparam := copy(s,1,pos(#31,s)-1);
        delete(s,1,pos(#31,s));
        except

a wywoluje

if cmd='wiad' then
showmessage('asdsfsafd') else;

i gdy w ClientRead mam i rzeczy do screena i inne komendy to wtedy nie dziala w ogóle PrintScreen :( Normalnie nie chce odebrac go od servera...

Moje pytanie jest nastepujace... Jak pogodzic procedure screena z pozostalymi ?

0

Po prostu jeżeli dostaniesz komendę o pobraniu screena, nie sprawdzaj innych komend do czasu odebrania całego obrazka. :P

Ps. Dlaczego to zawsze musi być trojan? :D

0

tylko jak to odzielic ? :) zatrzyma na chwile ? :) jedne komendy od drugich ? :) w ogóle tak mozna zrobic ? ;)

0

OMFG znów trojan... jak zwykle - gość nie ma pojęcia o teorii programowania, ale trojana to on pisze. Sekcje krytyczne... ew. mechanizm komunikatów, kolejek; odsyłam do najlepszego helpa.

0

nawet nie wiesz a mowisz... po prostu chcialem sie dowiedziec jak to zrobic... nie musisz od razu tak wyjezdzac... i dzieki za pomoc :/

0

Pomoc otrzymałeś... Teraz w twojej inicjatywie leży samodzielne zdobycie informacji konkretnych dla Twojego problemu. :P

A niech będzie podpowiem... Wysyłaj komendę nawet przy przesyłaniu fragmentów obrazu. Niech program po tej komendzie uzupełnia obraz.

0

pisanie na forum to ostatecznosc... przed tym zawsze przeszukuje inne posty faq artykuly i uzywam google... ale niestety teraz problem jest nietypowy i niemoge sobie z nim poradzic... mimo, ze juz probowalem wielu sposobow... dlatego pisze i prosze o bardziej konkretna pomoc... bo pewnie nie potrzeba duzych modyfikacji...

0

moge prosic o pomoc ? bo nie moge sobie z tym poradzic...

0

nikt nie wie ? :(

0

kurna, odpisałem:

deus napisał(a)

Sekcje krytyczne... ew. mechanizm komunikatów, kolejek

co to znaczy? poszukaj

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