Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.137.217.134] |
|
Сообщ.
#1
,
|
|
|
Короче проблема в следующем - если локально читаю файл и в цикле по 10 байт посылаю, то все работает, но уж очень долго, если считывать большее количество байт (следовательно и посылать большее), то почему - то когда принимаю (клиентом), то приходит не все содержимое файла, аналогично с заменой задержки (sleep). В чем проблема, а может это из - за того, что я пробую это локально?
Помогите... <br> hFile:=CreateFile(name, GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);<br> len:=GetFileSize(hFile, nil);<br> c:=len;<br> while c>0 do<br> begin<br><br> ReadFile(hFile,buf,10,Bytes,nil);<br><br> if(Bytes>0)then<br> begin<br><br> send(sock, buf, Bytes, 0);<br> ZeroMemory(@buf, sizeof(buf));<br> Sleep(40);<br> dec(c, Bytes);<br><br> end;<br> end;<br> CloseHandle(hFile);<br> |
Сообщ.
#2
,
|
|
|
Без хвоста или с окнами ?
Может проблема с очередью ? Попробуй ввести синхронизирующие пакеты. |
Сообщ.
#3
,
|
|
|
Я посылал файл через ClientSocket, ServerSocket. Там нужно ждать
подтверждений, то есть посылаешь пакет (ну или строку), клиент получает, посылает подверждение, сервер посылает следущую и т.д. Пакеты при этом не более 8192. Размер файлов любой, скорость у меня была где 600-700 кб в сек. То есть вполне нормально. Если не понял как это могу прислать на мыло исходник. |