इसे प्राप्त करने का कोई सीधा तरीका नहीं है, लेकिन ऐसा करने का एक तरीका एक अलग विधि हो सकता है जो कनेक्शन का परीक्षण करेगा।
static bool TestConnection(string ipAddress, int Port, TimeSpan waitTimeSpan)
{
using (TcpClient tcpClient = new TcpClient())
{
IAsyncResult result = tcpClient.BeginConnect(ipAddress, Port, null, null);
WaitHandle timeoutHandler = result.AsyncWaitHandle;
try
{
if (!result.AsyncWaitHandle.WaitOne(waitTimeSpan, false))
{
tcpClient.Close();
return false;
}
tcpClient.EndConnect(result);
}
catch (Exception ex)
{
return false;
}
finally
{
timeoutHandler.Close();
}
return true;
}
}
यह विधि एक WaitHandle कि विशेष समयावधि के लिये इंतजार करेंगे प्रयोग करेंगे कनेक्शन स्थापित करने के लिए, अगर यह समय में जुड़े हो जाता है, यह कनेक्शन बंद और सच्चे वापसी होगी, बाकी है, यह समय-समाप्त हुआ और बदले हैं असत्य।
स्रोत
2011-01-03 12:42:52
[ऐसा लगता है वहाँ ऐसा करने का कोई अच्छा तरीका है की तरह।] (Http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/2281199d-cd28-4b5c-95dc -5a888a6da30d /) –
यह संभव नहीं है। टाइमआउट केवल भेजने के संचालन के लिए समायोजित किया जा सकता है। अपने स्वयं के टाइमआउट तंत्र को लागू करना संभव है लेकिन आप लंबे समय तक मूल्य प्राप्त नहीं कर सकते हैं। – Mervin