Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
3-61453
SerGol
2002-11-30 17:47
2002.12.19
ADO, THREADS & BPL


7-61836
nobody2002
2002-10-16 13:01
2002.12.19
Как вытащить аккаунт Windows 2000? -2


1-61691
Валентин
2002-12-09 02:02
2002.12.19
Соеденить dos & windows


3-61406
Леший
2002-12-03 13:53
2002.12.19
Подскажите пожалуйста. Мне нужно строки в DBGrid подсвечивать


14-61806
Мазут Береговой
2002-11-29 02:57
2002.12.19
Кто любит рыбалку и за что?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский