超时或尝试连接到服务器? (C#WinForms)

问题描述:

哪个代码更适合处理到服务器的失败连接?超时或尝试连接到服务器? (C#WinForms)

Something like this:

或者这种代码在异步回调的开始为TcpClient.BeginConnect

try 
{ 
    tcpClient.EndConnect(async); 
} 
catch 
{ 
    System.Windows.Forms.MessageBox.Show("uh oh"); 

    return; 
} 

感谢您阅读

当你的上下文处理连接超时,我假设你意味着您在一段时间内还没有收到回复。

将您的EndConnect包装在try块中并捕获抛出的任何异常并不一定构成超时发生。目前没有内置的支持来处理与TcpClient超时。 您的第一个链接是如何检测和处理连接超时的一个很好的示例。

这篇文章可能会有一定的帮助,你也:Using an asynchronous client socket

+0

是否真的重要,如果它是一个超时或没有关系吗?基本上,如果出现任何问题,我不想取消整个操作?第一个例子不会因其他类型的错误而失败吗? –

+0

绝不是说我的catch块(用于错误处理)是一个坏主意,只是我不相信这是处理连接超时的优雅或优雅的方式(如果您考虑它,可能不会考虑作为**例外情况)。 –