Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
ВнизWSAWaitForMultipleEvents для однонитевого сервера Найти похожие ветки
← →
Евгений07 (2011-09-12 13:52) [28]Взял стандартную прогу с инета
procedure SocketProc;
var
hEvent,Event: WSAEVENT;
NetworkEvents: TWSANetworkEvents;
begin
//==============================================================================
hEvent:= WSACreateEvent;
if hEvent = WSA_INVALID_EVENT then Exit;
if WSAEventSelect(AcceptedSock, hEvent,
FD_CONNECT or FD_WRITE or
FD_READ or FD_CLOSE) = SOCKET_ERROR then Exit
else begin
while True do begin
Event:= WSAWaitForMultipleEvents(1, @hEvent, False, WSA_INFINITE, False); //
if ((NetworkEvents.lNetworkEvents and FD_READ)<>0) then begin
if (NetworkEvents.iErrorCode[FD_READ_BIT]<>0) then begin
WriteLn("FD_READ failed with error: " + IntToStr(NetworkEvents.iErrorCode[FD_READ_BIT]));
Break;
end else begin
Form1.SocketBar; // здесь вызов рабочий, правда через селект, простой код
end;
end;
У меня ожидания обычно до минуты
terminal.exe 50 - 54 % времени ЦП
Если запуск вручную кнопкой, Цп 1 - 0 %, запуск через PostMessage Цп 1 - 0 %
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c