Форум: "Сети";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
ВнизПодскажите по сокетам... Найти похожие ветки
← →
Anton. (2005-05-14 12:15) [0]Сделал такой текстовый файл:
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
и все. Почему???
← →
Digitman © (2005-05-14 12:50) [1]а откуда IE знает размер посылаемого тобой потока ?
← →
Anton. © (2005-05-14 12:58) [2]Хорошо. вставляю после Socket.SendText("Server: My Srv"+#$0A);
Socket.SendText("Content-length: 280915"+#$0A);
и ничего не меняется (280915 это как раз р-р потока).
Насколько я понимаю, эксплорер будет принимать пока сервер сокет не закроет.
← →
Digitman © (2005-05-14 13:22) [3]
> Anton. © (14.05.05 12:58) [2]
для начала ответь самому себе на вопрос, почему в то время как SendText() есть функциональный метод, ты используешь его как процедурный, игнорируя результат
← →
Anton. © (2005-05-14 14:32) [4]SendText() возвращает кол-во отосланных байт для не блокирующего сокета. Можно по подробнее - как это использовать?
Да и исп-ся он только для отсылки заголовка, а файл шлется при помощи SendStream. Он тоже функциональный и возвращает булевское значение, сигнализирующее о том что весь поток был успешно отправлен.
Возвращает SendStream, как ни странно, True...
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c