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

Вниз

Размер отылаемого за раз пакета данных через TCustomWinSocket   Найти похожие ветки 

 
DelphiN!   (2007-12-07 08:01) [0]

Отсылаю данные следующей процедурой:


function SendStream(var Socket: TCustomWinSocket; Stream: TStream): Boolean;
var
 i: integer;
 buff: array[0..1024] of byte;
begin
  Stream.Position:=0;
  repeat
    i:=Stream.Read(buff,1024);
    while Socket.SendBuf(buff,i)=-1 do
  until i=0;
end;


Размер отсылаемой за раз "порции" данных 1024 байта. Оптимален ли этот размер? Либо нужно поставить какой либо другой.

Программа отсылает в основном текстовую информацию(HTML страницы). Размер которых в большинстве случаев около 100 килобайт. Максимальный же размер может быть несколько мегабайт.

Также, допустимо ли данное выражение while Socket.SendBuf(buff,i)=-1 do, либо оно может привести к зацикливанию программы в определённой ситуации?


 
Сергей М. ©   (2007-12-07 08:16) [1]


> 1024 байта. Оптимален ли этот размер?


Оптимальным, imho, будет размер, возвращаемый ф-цией GetSockOpt(..SO_SNDBUF..)


> допустимо ли данное выражение while Socket.SendBuf(buff,
> i)=-1 do


Допустимо.

Но в блокирующем режиме в нем нет никакой надобности.

А собссно к чему все это ? Есть же штатный метод SendStream, он чем не угодил ?


 
DelphiN!   (2007-12-07 09:07) [2]


> Сергей М. ©   (07.12.07 08:16) [1]


Если использовать SendStream то нижняя часть больших HTML документов (больше 100 кб например) не отсылается клиенту. После того как я переделал на отсылку частями через SendBuff документы отсылаются полнойстю


 
Сергей М. ©   (2007-12-07 09:11) [3]


> DelphiN!   (07.12.07 09:07) [2]


Просто у тебя ошибка в 17-й строке, вот потому и "не отсылается")

Не вижу никакого резона изобретать свой SendStream, в то время как штатный одноименный метод работает корректно и успешно.



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1196397212
snake-as
2007-11-30 07:33
2007.12.30
Где скачвать звуки для программы


15-1196037648
PiterPen
2007-11-26 03:40
2007.12.30
Компиляция функций с использованием SSE и 3DNow!


1-1192005213
9899100
2007-10-10 12:33
2007.12.30
Firebird


1-1192005243
wild_arg
2007-10-10 12:34
2007.12.30
Хелп в проектах D7 и D10(BDS)


15-1196149095
Azize
2007-11-27 10:38
2007.12.30
Тестирование