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

Вниз

Обработка событий WInSock   Найти похожие ветки 

 
GreatLesh   (2003-06-19 07:55) [0]

Как узнать, что произошел disconnect с другой стороны?


 
Digitman ©   (2003-06-19 08:09) [1]

именно в WinsockAPI ?


 
panov ©   (2003-06-19 10:41) [2]

Вот так, например:

function TThSC.fWaitEvent(aTimeOut:Cardinal): Cardinal;
var
wne: WSANETWORKEVENTS;
begin
WSAResetEvent(fEvent);
WaitForSingleObject(fEvent,aTimeOut);
WSAEnumNetworkEvents(fSocket,fEvent,@wne);
Result := wne.lNetworkEvents;
Exit;
end;

procedure TThSC.Execute;
var
WaitResult: Cardinal;
begin
repeat
WaitResult := fWaitEvent(1);

if WaitResult=WSA_WAIT_FAILED then Terminate;
if WaitResult=WSA_WAIT_TIMEOUT then continue;
if Terminated then Exit;

if (WaitResult and FD_READ)=FD_READ then
begin
onReceive;
end;
if (WaitResult and FD_CLOSE)=FD_CLOSE then
begin
OnClosed;
Terminate;
break;
end;
if (WaitResult and FD_WRITE)=FD_WRITE then
begin
OnWrite;
( WaitResult = WAIT_FAILED) Вот так, например:

function TThSC.fWaitEvent(aTimeOut:Cardinal): Cardinal;
var
wne: WSANETWORKEVENTS;
begin
WSAResetEvent(fEvent);
WaitForSingleObject(fEvent,aTimeOut);
WSAEnumNetworkEvents(fSocket,fEvent,@wne);
Result := wne.lNetworkEvents;
Exit;
end;

procedure TThSC.Execute;
var
WaitResult: Cardinal;
begin
repeat
WaitResult := fWaitEvent(1);

if WaitResult=WSA_WAIT_FAILED then Terminate;
if WaitResult=WSA_WAIT_TIMEOUT then continue;
if Terminated then Exit;

if (WaitResult and FD_READ)=FD_READ then
begin
onReceive;
end;
if (WaitResult and FD_CLOSE)=FD_CLOSE then
begin
OnClosed;
Terminate;
break;
end;
if (WaitResult and FD_WRITE)=FD_WRITE then
begin
OnWrite;
end;

until (WaitResult = WAIT_FAILED) or Terminated;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.029 c
14-81915
Иван Шихалев
2003-07-27 19:48
2003.08.25
---|Ветка была без названия|---


1-81836
sewix
2003-08-13 13:30
2003.08.25
Код комбинации клавиш «Ctrl+F»


14-81935
mfender
2003-08-08 19:02
2003.08.25
Существует ли компонент наподобие графика мероприятий в Outlook e


1-81641
Алексей Петухов
2003-08-12 13:46
2003.08.25
try except


4-82006
chernoruk
2003-06-24 21:21
2003.08.25
Путь к файлу по заголовку окна?