构建TCP / IP服务器以进行客户端 - 服务器通信的最佳方法?

时间:2014-11-06 12:39:49

标签: c++ multithreading sockets tcp

我将编写一个本机C ++ Windows服务,需要从客户端桌面计算机收集和存储数据,可能有数千个。数据很简单,例如CPU%,内存和桌面上运行的客户端软件的其他一些数据。

构建此客户端 - 服务器通信的最佳方法是什么? 命名管道? TCP服务器/客户端? Windows套接字? WCF?别的什么? 或者最好在服务器上运行SQL Server并让客户端与数据库建立连接并以这种方式发送信息?

我可以在服务器上的服务中运行多线程命名管道服务器,但是我不希望在服务中为每个连接生成一个线程,其中有数千个客户端b / c会占用过多的服务器子系统资源。客户端将位于本地网络和WAN上。

感谢任何指导!

1 个答案:

答案 0 :(得分:1)

您不需要从头开始编写服务器;您已经可以使用此处记录的Performance Data Helper功能访问Windows性能计数器:http://msdn.microsoft.com/en-us/library/windows/desktop/aa373214(v=vs.85).aspx

特别是,PdhAddCounter允许您指定可以在远程计算机上的查询路径,如下所示:http://msdn.microsoft.com/en-us/library/windows/desktop/aa373193(v=vs.85).aspx