2016-10-31 6 views
4

Я новичок в разработке сервисов Windows, и мне нужно построить его на C#, который будет прослушивать порт 8080 для ввода данных, а затем проанализировать его. Я нашел информацию о System.Net.WebSockets, System.Net.Sockets и сторонних библиотеках, таких как SuperSocket. Есть этот example, но не уверен, что идет в OnStart() и что происходит в OnStop() методах моего класса обслуживания Windows. Другим примером является here, но это также не касается службы Windows. Для базовой разработки Windows это MSDN article.Службы Windows WebSocket прослушивание на порту 8080

Я думаю, это идет в OnStart():

Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); 
serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8080)); 
serverSocket.Listen(128); 
serverSocket.BeginAccept(null, 0, OnAccept, null); 

Что бы я поставил в OnStop()?

Входящий поток данных не требует аутентификации. Должен ли я все же выполнить рукопожатие?

Ваша помощь приветствуется.

ответ

2

Поскольку вы хотите использовать порт 8080 в качестве порта для прослушивания, я собираюсь предположить, что вы в основном имеете дело с трафиком http. Вместо использования сырых сокетов вы должны заглянуть в веб-сервер OWIN Self Hosted. Альтернативно NancyFx может работать.

OnStop() вызывается, когда окна пытаются остановить службу. Вы можете думать об этом как о своем распоряжении для обслуживания. OnStart() аналогично выполняет вашу функцию для инициализации. Я бы посоветовал вам заглянуть в действительно красивую библиотеку TopShelf, чтобы начать писать службы Windows.

Смежные вопросы