Socket-y czas wysyłania bufforu

0

Witam,
napisalem program do wysylania pików używając ServerSocket i ClientSocket. Tak wygląda główna pętla wysyłania pliku:

Application.ProcessMessages ;
Sleep(10) ;
Odczytane := F.Read(Buf , SizeOf(Buf)) ;
ClientSocket.Socket.SendBuf(Buf , Odczytane);

problem jest w tym, że podczas wysyłania większych plików np 1 mb Socket nie zawsze nadąża z wysyłaniem, minie 10 ms a Socket nie wyśle do koca jeszce poprzedniego pakietu a ma juz wysylać następny i tu pojawia sie pytanie czy jest jakis sposob żeby ten Sleep() w głównej pętli dostosowywał sie do aktualnego czasu trwania wysyłania jednego pakietu? Mam nadzieje że wiecie o co mi chodzi :)

0

Nie wierze że nikt nie wie jak to zrobić. We wszystkich opisach wysyłania pliku przy użyciu Socketów jest zrobione to tak samo tzn ze Sleepem(). Ale ten sposob przeciez nie zawsze bedzie działał. Ten Sleep() na stałe ustala przecież prędkość wysyłania, a powinna sie ona dostosować do prędkości łącza, aktualnego obciążenia itp. HELP !

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