Re[11]: Listener без цикла?
От: matumba  
Дата: 13.06.13 17:44
Оценка: -2
Здравствуйте, AndrewVK, Вы писали:

AVK>А ты знаком, что советуешь ему блокирующие методы?


Знаком. Я посоветовал ровно то, что вопрошал автор:

Вопрос: нет ли в NET готового сетевого слушателя, чтобы работал как Timer — создал, подписался на событие о поступлении инфы, подключился и счастлив?


Какой конкретно недостаток блокирующих сокетов не соответствует поставленному вопросу?? Всю проблему раздули вы, прибежав со своей асинхронностью и эфемерными проблемами производительности (даже не думая о конкретной проблеме).
Re[3]: Listener без цикла?
От: xednay89 Россия  
Дата: 13.06.13 19:54
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>BeginReceive требует указания количества считываемых байт, а где их взять?


Ну если речь идет о XMPP поверх TCP, то ни откуда. Ведь TCP потоковый транспорт а XMPP — xml-текстовый протокол.

D>У меня считывается xml по jabber-протоколу через NetworkStream прямо в XMLReader. Все хорошо, если бы не цикл в потоке.


ну а в чем проблема?
читаешь в буфер, из буфера в свой XMLReader, снова читашь в буфер.
Re[2]: Listener без цикла?
От: mDmitriy Россия  
Дата: 14.06.13 06:26
Оценка:
Здравствуйте, Danchik, Вы писали:
D>Может не надо велосипедостроительства?
D>WCF — http://manjuhpt.wordpress.com/2010/06/25/good-example-for-wcf-nettcpbinding/
D>Thrift (RPC от Cassandra) — http://habrahabr.ru/post/106839/
D>ZeroMQ (очень интересный асинхронный транспорт) — http://www.zeromq.org/bindings:clr
Спасибо, но это уже тяжелые мотоциклы, хотя и готовые.
Re[12]: Listener без цикла?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.06.13 08:07
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Ну там 20 строчек.


Это многопоточный код, там и в 20 строчек надо внимательно вчитываться.

А>Мне кажется вы мало опыта имеет с IOCP.


А мне кажется, что кое кто явно перешел на личности от недостатка аргументов.

А> Поэтому не знаете этих особенностей. Я вот тоже до недавних пор не знал про эту фушку.


Про какую такую фушку? Про то что в один стрим не надо писать сразу с нескольких потоков без синхронизации? А в MSDN смотреть не пробовал?

Read and write operations can be performed simultaneously on an instance of the NetworkStream class without the need for synchronization. As long as there is one unique thread for the write operations and one unique thread for the read operations, there will be no cross-interference between read and write threads and no synchronization is required.

IOCP тут совершенно не причем.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: Listener без цикла?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.06.13 08:09
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>Спасибо, но это уже тяжелые мотоциклы, хотя и готовые.


А обычный HTTP чем не подходит? Вся реализация в фреймворке есть искаропки, стандартный способ указания размера данных или конца данных тоже присутствует. Даже событийное асинхронное API есть — см. WebClient.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: Listener без цикла?
От: Danchik Украина  
Дата: 14.06.13 10:01
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>Здравствуйте, Danchik, Вы писали:

D>>Может не надо велосипедостроительства?
D>>WCF — http://manjuhpt.wordpress.com/2010/06/25/good-example-for-wcf-nettcpbinding/
D>>Thrift (RPC от Cassandra) — http://habrahabr.ru/post/106839/
D>>ZeroMQ (очень интересный асинхронный транспорт) — http://www.zeromq.org/bindings:clr
D>Спасибо, но это уже тяжелые мотоциклы, хотя и готовые.

WCF — да мы все его знаем и любим. Прикрутить к нему еще Protocol Buffers и совсем хорошо.
Thrift — прост и легок как две копейки, из минусов однонаправленный. Дуплекс просто не делается
ZeroMQ — просто швейцарский нож по сокетам. Решает проблемы с потерей связи, дослыкой, буферизацией, броадкастингом — этот велосипед не онин год самому писать и допиливать. Очень быстр и с минимальным оверхедом по протоколу. Будет гарантированно доставлять мегабайты данных.

Экономьте свое время, коллеги.
Re[4]: Listener без цикла?
От: mDmitriy Россия  
Дата: 14.06.13 10:39
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, mDmitriy, Вы писали:


D>>Спасибо, но это уже тяжелые мотоциклы, хотя и готовые.


AVK>А обычный HTTP чем не подходит? Вся реализация в фреймворке есть искаропки, стандартный способ указания размера данных или конца данных тоже присутствует. Даже событийное асинхронное API есть — см. WebClient.

Я работаю с jabber'ом... наверное, надо было сразу это указать, но как-то не придал значения.
Re[5]: Listener без цикла?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.06.13 10:42
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>Я работаю с jabber'ом... наверное, надо было сразу это указать, но как-то не придал значения.


Ну тогда только руками — логика XMPP такая, что стандартный режим запросил данные-получил-закрыл сокет для него не очень подходит.
... << RSDN@Home 1.2.0 alpha 5 rev. 99 on Windows 8 6.2.9200.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.