Показать сообщение отдельно

  #10  
Старый 29.09.2009, 18:26
GlooK
Участник форума
Регистрация: 20.04.2007
Сообщений: 174
С нами: 10030823

Репутация: 149
По умолчанию

HTTP Sender архив битый. Перезалей плиз.

Кстати, при приеме данных, максимальное число принятых данных cntread не превышает 2048. Т.е. текст обрезается.
Код:
while (true) do
begin
cntread := Recv(hSocket, hArray, 5000, 0);
if (cntread > 0) then hOutput := hOutput + copy(hArray, 1, cntread) else break;
end;
end;
Нашел правильное решение. Думаю уже конечное.

Код:
function fWSWrite(hInput: string):string;
var
hOutput: string;
hArray: array[0..5000] of char;
iRead: integer;
begin
hOutput := '';
Send(hSocket, hInput[1], length(hInput), 0);
FillChar(hArray, SizeOf(hArray), 0);
while (TRUE) do
begin
iRead := Recv(hSocket, hArray, 5000, 0);
if (iRead > 0) then hOutput := hOutput + copy(hArray, 1, iRead);
if (iRead < 2048) then break;
end;
result := hOutput;
end;
Только вот вопрос: почему 2048?

P.S. Среда Turbo Delphi Lite (Portable)
 
Ответить с цитированием