Форум: "Сети";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
ВнизС мольбой о помощи взываю!!! Найти похожие ветки
← →
Digitman (2001-10-17 12:52) [1]procedure TClientThread.ClientExecute;
var
FS:TFileStream;
RL:integer;
SocketEvent: THandle;
buf: Pointer;
Msg: TMsg;
begin
try
FS:=TFileStream.Create("dest.ext",fmCreate or fmOpenWrite);
SocketEvent := WSACreateEvent;
WSAEventSelect(ClientSocket.SocketHandle, SocketEvent, FD_READ or FD_CLOSE);
try
while (not Terminated) and ClientSocket.Connected do
case MsgWaitForMultipleObjects(1, SocketEvent, False, INFINITE, QS_POSTMESSAGE) of
WAIT_OBJECT_0:
begin
RL:=ClientSocket.ReceiveLength;
if RL > 0 then begin
GetMem(buf, RL);
try
RL := ClientSocket.ReceiveBuf(buf^, RL);
FS.Write(buf^, RL)
finally
FreeMem(buf);
end;
end
end;
WAIT_OBJECT_0 + 1:
begin
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
DispatchMessage(Msg);
end;
WAIT_ABANDONED: break;
end;
finally
CloseHandle(SocketEvent);
ClientSocket.Close;
FS.Free;
end;
except
// обработка ошибок
end;
end;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
Память: 0.43 MB
Время: 0.004 c