Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中的TCP客户端连接尝试#_C# - Fatal编程技术网

C# C中的TCP客户端连接尝试#

C# C中的TCP客户端连接尝试#,c#,C#,我有一个简单的程序。我想检查服务器是否真的在线,这样我的用户就可以在做事情之前连接到它,所以在form load事件中,我有以下内容: private void frmMain_Load(object sender, EventArgs e) { try { tcp.Connect("110.174.194.138", 8484); MessageBox.Show("siccces"); }

我有一个简单的程序。我想检查服务器是否真的在线,这样我的用户就可以在做事情之前连接到它,所以在form load事件中,我有以下内容:

 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秒。如何使其仅尝试连接一次,以便立即显示失败的消息


谢谢。

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

你怎么这么肯定。你把调试点放在代码中了吗?是什么让你认为它重试了5次?这是你应该考虑在另一个线程上做的事情,这样你就不会把主线程绑起来并锁定UI。您可以禁用将引发与TCP连接相关的任何事件的控件,直到后台工作完成,并验证了响应/无响应的服务器。查看可能重复的