Главная страница
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.018 c
15-1242893418
makvell
2009-05-21 12:10
2009.07.26
Вопрос знатокам oracle


11-1204051967
andreil
2008-02-26 21:52
2009.07.26
Как перебрать на форме все контролы?


2-1243738366
Нет имени
2009-05-31 06:52
2009.07.26
GDI и GDI+


15-1243075717
12
2009-05-23 14:48
2009.07.26
Делаю контрольную сестре, помогите с теорией..


3-1224582415
Ega23
2008-10-21 13:46
2009.07.26
Что означает следующий exception: