Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.26;
Скачать: CL | DM;

Вниз

Обработка информации от нескольких сокетов.   Найти похожие ветки 

 
Новичек ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
15-1242846791
Anatoly Podgoretsky
2009-05-20 23:13
2009.07.26
Поговорим об ForeFront Client Security


15-1242460113
PEAKTOP
2009-05-16 11:48
2009.07.26
Обновился Delphi RoadMap


2-1243515247
Int23
2009-05-28 16:54
2009.07.26
Как быстро повернуть Bitmap на 90 градусов


15-1243085085
Gooseman
2009-05-23 17:24
2009.07.26
Компьютерный глюк или вирус... Как лечить?


15-1243177319
Palladin
2009-05-24 19:01
2009.07.26
Соц. опрос: Когда и от кого вы услышали о стандарте XML