2010-01-13 43 views
1

我已經創建了在win32服務中運行的套接字程序,但是我面臨的問題是,當我啓動服務時,它將啓動並且它正在使用CPU將其全部最多50% CPU。我正在使用AMD 64位處理器。如何在win32中使用套接字

如果我寫一個沒有套接字的程序,它不會使用CPU。

我應該怎樣解決這個問題。

+0

A * short *顯示問題的示例(可作爲控制檯運行)將有所幫助。 – Richard 2010-01-13 12:58:41

回答

2

您可能需要看看類似select()的內容,以便在等待數據讀取時阻止。

沒有更多細節,很難確切地說出你的問題是什麼,但很可能是這樣的。

0

是的,一段示例代碼會有幫助,但問題很可能是您處於超時循環。根據您所在的客戶端/服務器連接的哪一端,可以通過調用accept()或select()以無限超時來解決此問題。在實踐中,最好有一個很長的超時時間,大約一秒,所以進程/線程可以查找信號並在需要時關閉。