в одной программе два сокета

Тема в разделе "WASM.WIN32", создана пользователем h0kum, 12 дек 2006.

  1. h0kum

    h0kum New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2003
    Сообщения:
    47
    Добрый день
    мне надо в одной программе сделать два сокета один на UDP и на TCP, обработчик у них будет один.
    как мне в программе (.ElseIf uMsg == WM_SOCKET) определить, что данные пришли по ТСР или по UDP протоколу?
     
  2. nermest

    nermest New Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    157
    1.Но ведь WM_SOCKET - это сообщение, которое вы сами назначаете. Почему бы не сделать
    WM_SOCKET_TCP и WM_SOCKET_UDP? - я имею в виду, что назначить каждому сокету свой тип сообщения, тогда все однозначно определяется?
    2. Можно проще.
    MSDN:
    То есть, wParam содержит сокет, который соответствует событию. Так что вычислить тип соединения можно просто switch по сокетам.
     
  3. h0kum

    h0kum New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2003
    Сообщения:
    47
    nermest
    Спасибо понял.

    Другой вопрос, тут скорее всего придется сделать реализацию "select() -- Синхронный I/O мультиплексинг" почитал статью, но в асме не нашел указываемые макросы:
    * FD_ZERO(fd_set *set) -- очищает перечень файловых дескрипторов
    * FD_SET(int fd, fd_set *set) -- добавляет в перечень fd
    * FD_CLR(int fd, fd_set *set) -- удаляет из перечня fd
    * FD_ISSET(int fd, fd_set *set) -- проверяет, находится ли fd в перечне
    только FD_ISSET нашел что это WSAFDIsSet, другие не нашел.
    кто нибудь писал на асме сокеты с использованием select?