maxymalny bufor w socketach

0

Jaki można ustawić maksymalny bufor podczas przesyłania plików przez socket i jakie są w związku z tym ustawienia => Czytając artykuł o przesyłaniu plików zauwarzyłem że w procedurze wysyłającej bufor są dwie dziwne linijki:

application.procesmessage (czy jakoś tak)
sleep(10)</B>

rozmiar bufora = 1024

zauwazyłem ze jak chcialem przeslac bufor np 10240 to nalezalo zwiekszyc sleep

<B>Do czego sluzą te dwie linijki?</B> bez nich jakoś nie chcialo sie przesylac, bledy jakies wywalalo

0

Moim zdaniem (a nie mam pewności) chodzi o to ,że sockety dzilą na mniejsze pakiety (datagramy?) dane, które chcesz przesłać, a to wymaga więcej czasu... Ale nie mam pewności i najpewniej się mylę.

0

Cześć! Trzeba pisać to Sleep, bądź ewentualnie Delay :P, dlatego że przesyłając duże pakiety, to są one dzielone i wysyłane kawałkami. A więc, najpierw ten socket musi wysłać jakąś wartość, potem ona musi zostać odebrana, a potem (w przypadku dużych pakietów) zostaje przysyłana informacja, że dany kawałek został wysłany i można przesyłać kolejne części (być może się mylę z tym, gdzieś czytałem o tym, a poza tym to chyba najprawdopodobniejsze... :) ). Nim on wszystko z danego pakietu wyśle, to to potrwa chwilkę. Dlatego to Sleep...

0

Nie polecam uzywania Sleep poniewaz gdy w ciagu np Sleep(10) nie zdazy wyslac pakietu to wtedy powstanie blad i cale przesylanie pakietu zostanie przerwane dlatego polecam buffor 1024b i przesylanie ego buforu za pozwoleniem klienta lub servera. Np client jest podlaczony do servera i teraz client chce sciagnac cos ode servera wiec client wysyla tresc np '0' i server to odczytuje i wysyla 1024 bajty jakiegos pliku potem gdy client otrzyma wysyla 1024 i server odczytuje i wysyla nastepne 1024 itd az wielkosc pliku wyslanego rowna sie wielkosci pliku. To jest moim zdaniem najlepszym pomyslem jest nawet szybszy. Jak ktos pomysli to moze wykabinowac ze od jednego servera mozna sciagac jednoczensie kilka plikow i w tym momencie moga tez inni clienci sciagac cos. Nie bede pisal jak tylko sami do tego dojdzcie! :)

0

No dobra to Sleep</B> mam mniej więcej wyjaśnione.
A o co chodzi z tym application.ProcessMessage?

0

ten anonim to ja :)

0

Wydaje mi się, że gniazdko ma osobny wątek więc sleep nic nie zmieni.

Application.ProcessMessages spowoduje przetworzenie komunikatów wysłanych do aplikacji.

0

Application.ProcessMessage robi to ze podczas wysylaniu pakietu program ci nie zrobi 'not responding', czy jakos tam :-)

[browar]

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