我是Windows服务开发的新手,需要在C#中构建一个将在端口8080
上侦听进入的数据,然后解析它。我找到了有关System.Net.WebSockets
,System.Net.Sockets
和第三方库的信息,例如SuperSocket
。
这是example,但不确定OnStart()
中的内容以及Windows服务类的OnStop()
方法中的内容。另一个例子是here,但这也没有特别涵盖Windows服务。对于基本的Windows服务开发,有MSDN article。
我认为这是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()
?
进入的数据流不需要任何身份验证。我还需要握手吗?
感谢您的帮助。
答案 0 :(得分:2)
由于您希望将端口8080用作侦听端口,因此我假设您基本上处理的是http流量。您应该查看Here the complete code Web服务器,而不是使用原始套接字。或者OWIN Self Hosted也可以。
当Windows尝试停止服务时,会调用 OnStop()
。您可以将其视为您的Dispose服务。 OnStart()
与初始化功能类似。我建议您查看非常好的库NancyFx以开始编写Windows服务。