我已经创建了在win32服务中运行的套接字程序,但我遇到的问题是,当我启动服务时它将启动并且它正在使用CPU移动其所有最多50%的CPU。我正在使用AMD 64位处理器。
如果我编写一个没有套接字的程序,它就不会使用CPU了。
我应该怎么做才能解决这个问题。答案 0 :(得分:2)
您可能需要查看select()
之类的内容,以便在等待数据读取时阻止。
如果没有更多细节,很难确切地说出你的问题是什么,但很可能就是这样。
答案 1 :(得分:0)
是的,一段示例代码会有所帮助,但问题很可能是你处于超时循环中。根据您所在的客户端/服务器连接的哪一侧,可以通过使用无限超时调用accept()或select()来解决此问题。在实践中,最好有一个长时间的超时,大约一秒,所以进程/线程可以查找信号并在请求时关闭。