streaminsight — сетевой источник данных — принудительный способ

#sockets #push #adapter #streaminsight

#сокеты #толкать #адаптер #streaminsight

Вопрос:

Я хочу реализовать адаптер ввода в приложении StreamInsight, который получает события из сети с учетом ip: port (подробнее здесь: http://social.technet.microsoft.com/Forums/en-US/streaminsight/thread/e7bcc2c4-45b8-4225-836a-102fd3be437b). Все образцы, которые я прочитал, работают в режиме извлечения, тогда как для моего сценария потребуется принудительный подход. Знаете ли вы о таком примере? Или вы могли бы дать какие-либо предложения? Сетевое программирование не моя область, но я могу быстро научиться, если знаю, с чего начать.

Спасибо

Ответ №1:

Да, у вас может быть входной адаптер, который позволяет передавать данные / события через TCP. Взгляните на использование класса TcpListener. Вот ссылка на MSDN: http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx

Когда Start() вызывается на вашем адаптере ввода, вам нужно создать экземпляр TcpListener и начать принимать соединения. В вашем «цикле прослушивания» вам нужно будет обработать NetworkStream и десериализовать входящие данные и преобразовать их в события, которые будут помещены в очередь в механизм запросов StreamInsight. Вам также потребуется реализовать Stop(), чтобы прекратить прием подключений. Не забудьте Dispose() все ресурсы, которые вы создали в процессе.

Надеюсь, это поможет.