1

我正在编写一台服务器,它将持续监听客户端连接。它不需要任何用户交互。所以,我试图把它作为一种服务。我安装成功了,但是除了显示错误1053之外没有成功运行。我发现启动/停止方法应该在30秒内返回。就我而言,这意味着我的服务器应该停止操作并在 30 秒内返回。我不能在服务器上暗示这个约束,因为客户端可以随时连接。谁能告诉我一种将此服务器安装为服务的方法?

注1:我使用的是windows平台,c#语言和VS 2010。

注2:也欢迎其他想法。

4

1 回答 1

1

在没有看到您的代码的情况下,继续您在此处所说的内容,我会说您应该实现线程。

现在,您的应用程序开始运行并一直阻塞,直到客户端连接。这不是最佳实践,或者对于 Windows 服务来说,这甚至是不可能的,因为需要 30 秒。限制。

您应该做的是启动服务并初始化所有内容(因此它将在 30 秒内返回),然后启动不同的侦听线程。当客户端连接时启动另一个线程也可能是个好主意。在这种情况下,您可以处理多个客户端,而不仅仅是一个。

当然,我不知道您使用的是什么传输层或类似的,但请查看这个基于 TCP 的示例:http ://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server

于 2012-08-01T08:47:52.553 回答