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

Writing Windows C++ server as service or console application

本文关键字:服务 控制台 应用程序 Windows c++ 服务器 编写      更新时间:2023-10-16

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

典型需求:

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

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

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

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

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

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

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

这正是服务要使用的用例,所以让它成为一个服务。

为方便调试,添加一个命令行选项,将其作为控制台进程启动。