
29.09.2009, 18:26
|
|
Участник форума
Регистрация: 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)
|
|
|