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

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

Обработка информации от нескольких сокетов. [D7, WinXP]


Новичек ©   (2008-03-10 20:35:00) 

Уважаемые Мастера, у меня такой вопрос:
С помощью WSA создаются несколько сокетов. Обработку от одного сокета я назначаю с помощью WSAAsyncSelect.
А есть ли способ обрабатывать информацию с помощью ОДНОЙ функции от ВСЕХ сокетов?
Спасибо.


DVM   (2008-03-12 21:58:00) [1]


> Сергей М. ©   (12.03.08 19:57) [10]

у него под Unix наверное :) там у демонов как раз процесс клонируется.


Сергей М.   (2008-03-12 19:57:00) [2]


> запихивал создание и обработку событий от сокетов в отдельные
> процессы


Это как ?


Новичек   (2008-03-12 17:27:00) [3]

To DVM:
Вы абсолютно правы - я проделывал такой экспкримент, получил те же самые результаты.
И еще: запихивал создание и обработку событий от сокетов в отдельные процессы. Результат - жрет память немеряно :-)


DVM   (2008-03-10 22:41:00) [4]


> Новичек ©   (10.03.08 20:35)  

я, кстати, как то пробовал сравнить два варианта: в первом создавал 1000 окон по одному для каждого сокета, а во втором одно окно на 1000 сокетов. Разницы ощутимой я не увидел. Сильно много ресурсов первый вариант тоже не сожрал. Хотя кажется на первый взгляд, что 1000 окон - это чудовищно много.


Сергей М.   (2008-03-10 21:15:00) [5]


> Новичек ©   (10.03.08 21:11) [6]


Да не за что)


Новичек   (2008-03-10 21:11:00) [6]

2 Сергей М.:
Нашел - я переменной WorkedSocket присваивал дескрипторы всех вновь создаваемых сокетов:

WorkedSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_IP);

Соответственно, в конце оставался только один дескриптор.
Спасибо за поддержку, Сергей.


Сергей М.   (2008-03-10 21:04:00) [7]


> Новичек ©   (10.03.08 21:01) [4]


Почему издеваюсь-то ?
На самом же деле работает !


Новичек   (2008-03-10 21:01:00) [8]

2 Сергей М.:
Издеваетесь :-)
Сейчас просмотрю свой код по буковкам, т.к. я тоже думаю, что работать должно.


Сергей М.   (2008-03-10 20:58:00) [9]


> не работает


А у меня работает.
Мало того, и у ребят из Борланда, разработавших стандартные компоненты TServer/ClientSocket тоже работает. Чудеса да и только)

Что я делаю не так ?)


Новичек   (2008-03-10 20:48:00) [10]

2 Сергей М.:
Я так и сделал сразу - не работает. Реагирует функция только на последний сокет.


Сергей М.   (2008-03-10 20:41:00) [11]

Есть.

Для каждого из созданных тобой гнезд вызови WSAAsyncSelect, указав хэндл одного и того же окна, тогда все сообщения об интересующих событиях этих гнезд будут адресованы указанному окну.


Наверх

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