C# TCPClient 如何让错误地址/离线服务器更快失败

标签 c# tcpclient

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

  1. 服务器无效/离线
  2. 服务器有效,但端口已关闭
  3. 服务器有效,但有不同的程序正在使用该端口
  4. 连接成功

我遇到的问题是 #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/

相关文章:

c# - 如何通过LINQ遍历xml中的属性

c# - 在 .net 中使用 JsonConvert 对具有可变长度的对象进行 JSON 序列化

c# - Windows Phone 8 - 保持套接字打开并接收未知长度的数据

c# - 从一个线程多次调用 NetworkStream.BeginWrite 是否安全?

.net - TcpListener 请求泛滥

如果记录也存在,Javascript 无法按函数预期工作

c# - 如何制作包含 C# 应用程序和 sql server 的安装文件

c# - 使用反射捕获方法状态

c# - 如何分发来自 TCP 监听器的请求

c# - Azure 函数遇到 System.Net.Sockets.SocketException