Войти

Показать полную графическую версию : Что не так?


Guest
10-03-2003, 20:47
Короче проблема в следующем - если локально читаю файл и в цикле по 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
Вопрос: что происходит на самой последней итерации цикла, когда c > 0, но c < длины блока?




© OSzone.net 2001-2012