Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
2-1242974328
Dennis I. Komarov
2009-05-22 10:38
2009.07.26
TMenuItem.Click -> any.dll procedure


3-1224859229
gameus
2008-10-24 18:40
2009.07.26
выгрузить xml из хранимки в файл


15-1243085277
@!!ex
2009-05-23 17:27
2009.07.26
Не работает Shared Section.


15-1243326751
Василий Жогарев
2009-05-26 12:32
2009.07.26
Архитектурный софт Free (Рисуем бани)


2-1244023953
andzav
2009-06-03 14:12
2009.07.26
Из DataTimePicker вставляется в поле не только дата, но и время





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский