C#TCPClient如何让错误的地址/脱机服务器更快地失败

时间:2012-07-25 20:03:26

标签: c# tcpclient

我正在尝试弄清楚当我的客户端软件无法连接到远程服务器时如何向用户提供更好的反馈。我认为有几种情况我想区分:

  1. 无效/离线服务器
  2. 有效服务器但端口已关闭
  3. 有效的服务器但不同的程序正在使用端口
  4. 成功连接
  5. 我遇到的问题是#1需要一分钟才能超时。 #2和#3几乎立即失败。有没有办法可以让#1更快地失败?

1 个答案:

答案 0 :(得分:2)

您可以实施连接超时

http://www.codeproject.com/Articles/31514/Implementation-of-Connecting-a-Socket-with-Timeout

只需确保将连接超时值设置为对您尝试访问的服务器合理的值(如果它们有时需要5秒钟才能到达,请不要将其设置为1秒)。