【问题标题】:WebSocket windows service listening on port 8080WebSocket windows服务监听8080端口
【发布时间】:2017-03-13 16:42:37
【问题描述】:

我是 Windows 服务开发的新手,需要用 C# 构建一个,它会在端口 8080 上侦听传入的数据,然后对其进行解析。我找到了有关System.Net.WebSocketsSystem.Net.Sockets 和第三方库的信息,例如SuperSocket。 有这个example,但不确定我的Windows 服务类的OnStart()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() 中添加什么?

传入的数据流不需要任何身份验证。我还需要握手吗?

感谢您的帮助。

【问题讨论】:

    标签: c# sockets websocket windows-services


    【解决方案1】:

    由于您希望使用端口 8080 作为侦听端口,我将假设您实际上是在处理 http 流量。您应该查看OWIN Self Hosted Web 服务器,而不是使用原始套接字。或者NancyFx 也可以。

    OnStop() 在 Windows 尝试停止服务时被调用。您可以将其视为您的 Dispose for service。 OnStart() 同样是您进行初始化的函数。我建议您查看非常不错的库 TopShelf 以开始编写 Windows 服务。

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 2016-05-05
      • 2021-06-02
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2017-10-06
      相关资源
      最近更新 更多