Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка событий от нескольких сокетов. [D7, XP]


Страницы:   1 2

Новичек ©   (2007-11-15 12:11:00) 

Здравствуйте, уважаемые Знатоки.
Имеется несколько потоков, в каждом из которых создается сокет.
Обработка событий от сокетов осуществляется с помощью вызова WSAAsyncSelect(sctSocket, frmMain.Handle, WM_sctSocketEvent, FD_Read);
Обработчик выглядит следующим образом:
procedure TfrmMain.WMsctSocketEvent(var Msg: TMessage);
var
 LenOfBuf: Cardinal;
Local: AnsiString;
begin
 case WSAGetSelectEvent(Msg.lParam) of
   FD_Read:
   begin
      ioctlsocket(WorkedSocket, FIONREAD, LenOfBuf);
      SetLength(Local, LenOfBuf);
      Recv(sctSocket, PChar(Local)^, LenOfBuf, 0);
      if Pos(IniString1, Local) <> 0 then
      begin
        SendStr(sctSocket, Answer1 + #13#10);
        Exit;
      end;
      if Pos(IniString2, Local) <> 0 then
      begin
        SendStr(sctSocket, Answer2 + #13#10);
        Exit;
      end;
    end;// FD_Read
  end;// case
end;

Процедура SendStr отсылает указанную строку на указанный сокет.
Теперь сам вопрос: если в этот обработчик будут поступать данные из множества сокетов, то на какой сокет будет отправлять данные процедура SendStr?
Спасибо.


Сергей М.   (2007-11-15 12:29:00) [21]


> Recv(sctSocket, PChar(Local)^, LenOfBuf, 0);


Кто такой sctSocket ?


Vice____   (2007-11-15 12:27:00) [22]

а самому проверить...
хотя думаю ето только первый вопрос)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо