2009-02-26 27 views
1

我有一個.net 2.0應用程序,它使用System.Net.Sockets Send()方法定期發送數據,例如,每一分鐘。本質上它是一個套接字服務器。大多數情況下,沒有客戶端連接來接收這些數據,但偶爾用戶會運行一個應用程序,該應用程序將連接到監視定期發送的數據。在每個時間間隔中,我將發送的最多約爲1024個字節,而大多數消息要小得多。C#套接字服務器發送問題

我的問題是什麼影響系統資源調用Send()每分鐘沒有人接收它有?這最終會消耗我所有的記憶嗎?我已經讀過,Windows套接字是基於Berkeley套接字創建的文件描述符。是否有一些低級標準輸出(stdout)正在執行,並且未收到的數據只是進入黑洞?

回答

1

什麼影響系統資源調用Send()每分鐘沒有人接收它有?

應該沒有 - 它應該會因爲套接字未打開而引發錯誤。

這最終會吃掉我所有的記憶嗎?

不,它應該只是拋出一個錯誤。

是否有一些低級標準輸出(stdout)正在執行,並且未收到的數據只是進入黑洞?

數據確實被拋棄了,如果你注意到了,你會看到錯誤。

在發送之前,您應該首先檢查套接字是否打開。如果沒有人連接,請勿發送。一個額外的if語句。

-Adam

+0

謝謝,我將添加代碼以查看是否有人連接。我認爲數據被扔掉了,因爲在我的測試中,它只是發送,並沒有拋出異常,我的進程內存使用量沒有增加。 – 2009-02-26 20:41:17

相關問題