blocking sockets & threading

Тема в разделе "WASM.NETWORKS", создана пользователем infern0, 25 апр 2005.

  1. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    Проясните ситауцию. Есть библиотека, в ней написано

    "...library based entirely on blocking sockets..."

    Вопрос - могу ли я ее использовать в потоках ? Судя по тому что я нашел про реализацию синхронных сокетов в win, то нельзя, т.к. используется message loop. Или я ошибаюсь ?
     
  2. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    Ошибаешься.

    Нету там никаких окошек. (отчасти конечно)

    по кр. мере Winsock я использовал в потоках и все ок.

    Окошки возможно есть при использовании WSAEvents.
     
  3. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    ок. значит пойду руки выпрямлять...
     
  4. Avalonec

    Avalonec New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    111
    Адрес:
    Тула
    Использование блокирующих сокетов приводит к подвисанию потока, так из них все же можно строить многопоточные программы, но коряво, что жуть.



    Окошки возможно есть при использовании WSAEvents.

    Нету и тут никаких окошек, покрайней мерю пользую их давно и ни каких проблем не замечено.
     
  5. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    Avalonec - WSAAsync* функции реализованы на базе окошек..
    Код (Text):
    1.  
    2. HANDLE WSAAsyncGetHostByAddr(
    3.   HWND hWnd,
    4.   unsigned int wMsg,
    5.   const char* addr,
    6.   int len,
    7.   int type,
    8.   char* buf,
    9.   int buflen
    10. );
    11.  
    12.  


    Но насчет блокирующих сокетов - я так думаю имелась ввиду berkley реализация - там нет никаких окошек. Однозначно. А все что от микрософта - возможно на базе сообщений реализовано окошечных.



    И насчет проблем - а с чего они должны взяться, даже если там окошки?
     
  6. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    п.с. понимаю, если там MFC используется для окошек - тогда задница (MFC-объекты между потоками работать не умеют). Но там нормальный WinAPI..
     
  7. Avalonec

    Avalonec New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    111
    Адрес:
    Тула
    Блокирующие сокеты работают без окошек, это точно.



    Я имел ввиду, WSAWaitForMultipleEvents.



    И насчет проблем - а с чего они должны взяться, даже если там окошки?

    Действительно проблем не должно быть никаких, только меня претит использовать окошечные сообщения. Они не столь быстродействены, imho, менее надежны, даже неудобны, если конечно сравнивать с хорошей реализацией.