Форум: "Сети";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
ВнизОбработка информации от нескольких сокетов. Найти похожие ветки
← →
Новичек © (2008-03-10 20:35) [0]Уважаемые Мастера, у меня такой вопрос:
С помощью WSA создаются несколько сокетов. Обработку от одного сокета я назначаю с помощью WSAAsyncSelect.
А есть ли способ обрабатывать информацию с помощью ОДНОЙ функции от ВСЕХ сокетов?
Спасибо.
← →
Сергей М. © (2008-03-10 20:41) [1]Есть.
Для каждого из созданных тобой гнезд вызови WSAAsyncSelect, указав хэндл одного и того же окна, тогда все сообщения об интересующих событиях этих гнезд будут адресованы указанному окну.
← →
Новичек © (2008-03-10 20:48) [2]2 Сергей М.:
Я так и сделал сразу - не работает. Реагирует функция только на последний сокет.
← →
Сергей М. © (2008-03-10 20:58) [3]
> не работает
А у меня работает.
Мало того, и у ребят из Борланда, разработавших стандартные компоненты TServer/ClientSocket тоже работает. Чудеса да и только)
Что я делаю не так ?)
← →
Новичек © (2008-03-10 21:01) [4]2 Сергей М.:
Издеваетесь :-)
Сейчас просмотрю свой код по буковкам, т.к. я тоже думаю, что работать должно.
← →
Сергей М. © (2008-03-10 21:04) [5]
> Новичек © (10.03.08 21:01) [4]
Почему издеваюсь-то ?
На самом же деле работает !
← →
Новичек © (2008-03-10 21:11) [6]2 Сергей М.:
Нашел - я переменной WorkedSocket присваивал дескрипторы всех вновь создаваемых сокетов:WorkedSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
Соответственно, в конце оставался только один дескриптор.
Спасибо за поддержку, Сергей.
← →
Сергей М. © (2008-03-10 21:15) [7]
> Новичек © (10.03.08 21:11) [6]
Да не за что)
← →
DVM © (2008-03-10 22:41) [8]
> Новичек © (10.03.08 20:35)
я, кстати, как то пробовал сравнить два варианта: в первом создавал 1000 окон по одному для каждого сокета, а во втором одно окно на 1000 сокетов. Разницы ощутимой я не увидел. Сильно много ресурсов первый вариант тоже не сожрал. Хотя кажется на первый взгляд, что 1000 окон - это чудовищно много.
← →
Новичек (2008-03-12 17:27) [9]To DVM:
Вы абсолютно правы - я проделывал такой экспкримент, получил те же самые результаты.
И еще: запихивал создание и обработку событий от сокетов в отдельные процессы. Результат - жрет память немеряно :-)
← →
Сергей М. © (2008-03-12 19:57) [10]
> запихивал создание и обработку событий от сокетов в отдельные
> процессы
Это как ?
← →
DVM © (2008-03-12 21:58) [11]
> Сергей М. © (12.03.08 19:57) [10]
у него под Unix наверное :) там у демонов как раз процесс клонируется.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c