我试图弄清楚当我的客户端软件无法连接到远程服务器时如何向用户提供更好的反馈。我认为我需要区分以下几种情况:
- 服务器无效/离线
- 服务器有效,但端口已关闭
- 服务器有效,但有不同的程序正在使用该端口
- 连接成功
我遇到的问题是 #1 需要一分钟多才会超时。 #2 和 #3 几乎立即失败。有没有办法让#1更快地失败?
最佳答案
您可以实现连接超时
http://www.codeproject.com/Articles/31514/Implementation-of-Connecting-a-Socket-with-Timeout
只需确保将连接超时值设置为对于您尝试访问的服务器来说合理的值(如果它们有时需要 5 秒才能到达,请勿将其设置为 1 秒)。
关于C# TCPClient 如何让错误地址/离线服务器更快失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11657720/