Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите по сокетам... [D6, WinXP]


Anton. ©   (2005-05-14 12:15:00) 

Сделал такой текстовый файл:


1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
.........................................
64991 64992 64993 64994 64995 64996 64997 64998 64999 65000


Теперь серверсокетом в событии OnClientRead делаю следующее:

 Socket.SendText('HTTP/1.0 200 OK'+#$0D+#$0A);
 Socket.SendText('Server: My Srv'+#$0A);
 Socket.SendText(#$0D+#$0A);
 mstrm := TMemoryStream.Create;
 mstrm.LoadFromFile('d:\1.txt');
 Socket.SendStream(mstrm);
 Socket.Close;


Принимаю это интернет эксплорером. И там отображается только до сюда:
<CODE
......
5711 5712 5713 5714 5715 5716 5717 5718 5719 5720
5721 5722 5723 5724 5725 5726 5727


и все. Почему???


Anton.   (2005-05-14 14:32:00) [1]

SendText()возвращает кол-во отосланных байт для не блокирующего сокета. Можно по подробнее - как это использовать?
Да и исп-ся он только для отсылки заголовка, а файл шлется при помощи SendStream. Он тоже функциональный и возвращает булевское значение, сигнализирующее о том что весь поток был успешно отправлен.
Возвращает SendStream, как ни странно, True...


Digitman   (2005-05-14 13:22:00) [2]


> Anton. ©   (14.05.05 12:58) [2]


для начала ответь самому себе на вопрос, почему в то время как SendText() есть функциональныйметод, ты используешь его как процедурный, игнорируя результат


Anton.   (2005-05-14 12:58:00) [3]

Хорошо. вставляю после Socket.SendText('Server: My Srv'+#$0A);
 Socket.SendText('Content-length: 280915'+#$0A);

и ничего не меняется (280915 это как раз р-р потока).

Насколько я понимаю, эксплорер будет принимать пока сервер сокет не закроет.


Digitman   (2005-05-14 12:50:00) [4]

а откуда IE знает размер посылаемого тобой потока ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо