Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Проблемы с написанием 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-61431
alxx
2002-11-29 17:19
2002.12.19
Относительно триггеров.


4-61885
Обсолютный ноль
2002-11-07 20:22
2002.12.19
Вопрос по WinAPI


3-61500
oss
2002-11-29 13:12
2002.12.19
длина названия поля таблицы


1-61610
Ag2002
2002-12-06 16:06
2002.12.19
Значки


3-61509
mike-d
2002-12-02 21:30
2002.12.19
sql запрос на сравнение