Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
ВнизRecv Найти похожие ветки
← →
Res (2008-06-27 22:54) [0]Здравствуйте. Подскажите пожалуйста, почему данная функция долго принимает данные, хотя по снифферу они давно были получены, иногда вообще ничего не возращает:
CONST
GP_TIMEOUT = 5000;
function recvdata(sock:TSocket):string;
var
tv : timeval;
fds : TFDSet;
buf : array [1..1024] of char;
res : string;
r : integer;
i:integer;
begin
r:=1;
while (r>0) do
begin
FD_ZERO(fds);
FD_SET(sock, fds);
tv.tv_sec := GP_TIMEOUT div 1000;
tv.tv_usec := (GP_TIMEOUT mod 1000) * 1000;
i := select(0, @fds, nil, nil, @tv);
if (i <= 0) then
begin
break;
end;
r := recv(sock, buf, 1024, 0);
res:=res+copy(buf,1,r);
end;
result:=res;
end;
← →
Я - против (2008-06-28 15:34) [1]ничего не понятно.
и как понимать, что она иногда ничего не возвращает? result равен null? :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c