c++ - 将 Windows C++ 服务器编写为服务或控制台应用程序

标签 c++ windows windows-services client-server console-application

这需要讨论与在 Windows 7 32 位上使用 C++ 进行服务器开发相关的最佳实践

典型要求:

  1. 一个类似于“服务器”的程序,在 Windows 后台运行。它应该运行几天,应该在每次启动时自动运行。
  2. 服务器通过 TCP 套接字协议(protocol)处理来自其他设备(PC、智能手机、平板电脑)的传入客户端连接
  3. 服务器依次通过 TCP 和串行通信与连接在同一网络中的大量嵌入式设备进行通信
  4. 服务器充当黑白客户端(PC、智能手机、平板电脑)和嵌入式设备的桥梁

服务器管理员可以通过配置.ini文件配置服务器,然后启动服务器。

到客户端的接口(interface)是TCP socket接口(interface),客户端发送命令,服务器返回buffer(xml) 我的问题:

  1. 我应该把程序写成“服务”吗,比如http://code.msdn.microsoft.com/windowsdesktop/CppWindowsService-cacf4948

  2. 或者我应该编写一个控制台应用程序并从 XYNTService 控制这个可执行文件 http://mysite.verizon.net/XiangYangL/XYNTService.htm这样它就像一个服务

  3. 或者一个控制台应用程序,它在注册表中有一个条目,用于在登录时启动,然后重新启动

这真的重要吗,从上面选择哪个选项?

非常感谢。

最佳答案

这正是服务的预期用例,因此将其作为服务。

为了更容易调试,添加命令行选项以将其作为控制台进程启动。

关于c++ - 将 Windows C++ 服务器编写为服务或控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14258544/

相关文章:

c++ - 托管代码中使用的 STL vector

c# - 在 C# 中与 Windows 服务对话的 Windows 应用程序?

windows-services - 收集 Windows 服务依赖项

C++ - 函数不会打印行首字母

c++ - 为什么不推导模板参数?

c# - WPF 和 Windows 10 崩溃

c++ - 将值转换为 bool 的魔法

c# - 停止多线程 Windows 服务

c++ - OpenGL - 解释 glutInitDisplayMode()

windows - Delphi SelectDirectory与网络驱动器的奇怪行为