在我正在開發的應用程序中,我需要處理與普通套接字異常不同的套接字超時。問題是許多不同的問題導致SocketException
,我需要知道原因是什麼。是一個例外文化獨立的「消息」嗎?
有報道沒有內部異常,所以我有工作的唯一信息就是消息:
"A connection attempt failed because the connected party did not
properly respond after a period of time, or established connection
failed because connected host has failed to respond"
這個問題有一個全面和具體的部分:
- 是可以接受的基於異常的文本表示寫入條件邏輯?
- 有沒有辦法避免需要異常處理?
示例代碼如下...
try
{
IPEndPoint endPoint = null;
client.Client.ReceiveTimeout = 1000;
bytes = client.Receive(ref endPoint);
}
catch(SocketException se)
{
if (se.Message.Contains("did not properly respond after a period of time"))
{
// Handle timeout differently..
}
}
我想停止「等待新的數據」現在每一次,讓我的工作線程可以看看,看看它是否已經要求優雅地關閉 - 我寧願避免套接字的交叉線程終止來提供這種機制。
爲什麼我完全錯過了那些?謝謝。 – 2010-04-08 13:54:22