Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Что не так? (http://forum.oszone.net/showthread.php?t=30624)

Guest 10-03-2003 20:47 209388

Короче проблема в следующем - если локально читаю файл и в цикле по 10 байт посылаю, то все работает, но уж очень долго, если считывать большее количество байт (следовательно и посылать большее), то почему - то когда принимаю (клиентом), то приходит не все содержимое файла, аналогично с заменой задержки (sleep). В чем проблема, а может это из - за того, что я пробую это локально?
Помогите...
 hFile:=CreateFile(name, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
 len:=GetFileSize(hFile, nil);
 c:=len;
 while c>0 do
  begin

   ReadFile(hFile,buf,10,Bytes,nil);

   if(Bytes>0)then
    begin

     send(sock, buf, Bytes, 0);
     ZeroMemory(@buf, sizeof(buf));
     Sleep(40);
     dec(c, Bytes);

    end;
  end;
 CloseHandle(hFile);

noname00.pas 10-03-2003 21:43 209389

Вопрос: что происходит на самой последней итерации цикла, когда c > 0, но c < длины блока?


Время: 22:40.

Время: 22:40.
© OSzone.net 2001-