Форум: "Сети";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизПроблемы с написанием Web сервера... Найти похожие ветки
← →
pavor (2002-10-21 07:39) [0]Приветствую вас, уважаемые профессионалы!
При написании указанного сервера возникла проблема: из любого файла отсылается только первые 8 килобайт (примерно). Т.е. с файлами меньше 8Кб все ОК, а больше этого размера передать не удается передать не удается.
Для передачи используется Socket.SendStream.
Это обработчик события OnClienRead:
var Stream:TFileStream;
...
Stream:=TFileStream.Create("FILE.EXT", fmOpenRead);
Response:=Response+IntToStr(Stream.Size);//Добавляем длину файла
// к ответу на запрос браузера.
Socket.SendText(Response);// Отправили ответ на запрос.
Socket.SendStream(Stream);
//Stream.Free; Нужно это проделать, но здесь вылетает с //сообщением об ошибке. Пока игнорируем.
Socket.Close; //Закрываем соединение (протокол HTTP/1.0)
Может уже кто сталкивался?
← →
Reindeer Moss Eater (2002-10-21 08:59) [1]Поток самому убивать не надо.
← →
Pavor (2002-10-21 12:29) [2]В смысле - Stream.Free не делать? Почему?
И непонятно все же, почему только 8кб пересылается...
← →
Reindeer Moss Eater (2002-10-21 13:14) [3]Патаму
Note: The Stream passed as a parameter to SendStream becomes “owned” by the windows socket object. The Windows socket object frees the stream when it is finished with it. Do not attempt to free the stream after it has been passed as a parameter.
← →
Pavor (2002-10-21 14:30) [4]Я вроде видел это в примечании к ф-ции SendStreamThenDrop...
Но - ОК, я сейчас проверить не могу. :)
А насчет 8Кб есть соображения? Это, в общем-то главный вопрос...
← →
Reindeer Moss Eater (2002-10-21 15:14) [5]Reindeer Moss Eater (21.10.02 08:59)
← →
Pavor (2002-10-23 14:46) [6]Последней фразы я как-то не уловил.. :)))
← →
Reindeer Moss Eater (2002-10-23 16:45) [7]Reindeer Moss Eater (21.10.02 08:59)
Поток самому убивать не надо.
← →
Pavor (2002-10-25 08:45) [8]А-А-А!!!!
Ну как я раньше не допер??!!! Все, понял. Уже заработало.
Огромное спасибо!
//На всякий случай, если кто еще не понял :)
Socket.Close; //не делайте, он соединение обрывает
// и успевает отослаться только содержимое буфера - около 8Кб!
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c