【问题标题】:TcpClient connection attempts in C#C# 中的 TcpClient 连接尝试
【发布时间】:2013-09-12 14:25:37
【问题描述】:

我有一个简单的程序。我想检查服务器是否真的在线,以便我的用户可以在做任何事情之前连接到它,所以在表单加载事件中我有以下内容:

 private void frmMain_Load(object sender, EventArgs e)
    {
        try
        {
            tcp.Connect("110.174.194.138", 8484);
            MessageBox.Show("siccces");
        }
        catch
        {
            MessageBox.Show("failed");
        }
        if (tcp.Connected)
        {
            //do whatever once program has connected.
        }
        else
        {
            MessageBox.Show("FAILED");
        }
    }

当服务器在线(并且可以连接)时,一切正常。它在 0.1 秒内连接,并没有发生任何坏事。但是,当服务器关闭时,我认为它会尝试重新连接大约 5 次,最多需要 15 秒。如何让它只尝试连接一次,以便立即显示失败的消息?

谢谢。

【问题讨论】:

  • 你怎么这么确定。您是否在代码中添加了调试点?
  • 是什么让你认为它重试了 5 次?
  • 这是您可能应该考虑在不同线程上执行的操作,这样您就不会占用主线程并锁定 UI。您可以禁用您的控件,这些控件将引发对 TCP 连接执行任何操作的事件,直到后台工作完成,验证了响应/无响应的服务器。
  • 看看this

标签: c#


【解决方案1】:

在您的tcp 课程中,您需要修改代码以在给定时间段后超时。您必须测试连接以查看它是否在给定的时间段内启动,如果没有,您将不得不处理结果。有多种方法可以做到这一点,因此只需在 Google 上搜索您正在使用的套接字方法的超时时间。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 2020-11-26
    • 2015-05-13
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2017-08-17
    相关资源
    最近更新 更多