首页 文章

TCPClient和套接字无法连接到服务器

提问于
浏览
0

我在TCPListener / TCPClient的基础上与服务器的连接有一个非常奇怪的问题 . 在测试期间的某个时刻,我无法再连接到我的服务器应用程序,每次都尝试超时 . 双方的Netstats都表明,我的应用程序在正确的端口上进行侦听,而客户端正在尝试连接到正确的IP和端口,但它没有比“SYN_SENT”更进一步 . 服务器只是一直显示“LISTENING” . 我所能做的就是重启我的电脑,暂时解决了这个问题 . 但经过一些联系后,它又重新开始了 . 到目前为止,我测试了TCPClient和Sockets类以连接到服务器,但两者都显示了这种行为,这并不奇怪,因为TCPClient是套接字类afaik的包装器 .

双方都检查防火墙,远程桌面之类的工作完全正常,并且没有阻止我的应用程序的连接 . 没有任何关系可以关闭或者什么东西,已经把我所知道的一切都搞定了(可能没那么多;))

所以有什么问题?

编辑:

需要连接到我的服务器的方法:

public int GetSomeDataFromServer(string blargh)
    {
        int ret;
        try
        {
            using(ConnectionTCPStream ctp = new ConnectionTCPStream())
            {
                if(ctp.EstSecConnWithServ())
                {
                    ret = CKSHandler(ctp, blargh);
                }
                else
                { ret = (int)ErrFlags.ServerDeniedConnection; }
            }
            return ret;
        }
        catch(Exception)
        {
            InternalError = ErrFlags.ServerUnreachable;
            return (int)ErrFlags.ServerUnreachable;
        }
    }

我的类的构造函数正在处理Connections:

public ConnectionTCPStream()
    {
        Client = new TcpClient("VeryImportantAdress", 49778); //it fails right here!
        rsaCrypt = new RSACH() { RSAForeignPubKey = "An 8192-Bit long RSA Public key." };
        AESPASS = AESThenHMAC.CreatePassword(200);
    }

2 回答

  • 1

    听起来你正在耗尽所有的连接或其他资源 .

    当你做netstat -an时,你看到了什么?你看到一堆开放的端口吗?

    这里有一篇文章可能对你有所帮助here

    其他一些资源可能会杀死你,当你遇到这种情况时,可能值得让SA启动资源监视器以检查主机的运行状况 .

    如果没有抛出任何错误,它会让你的生活更加艰难 . 当您没有干净地清理套接字断开连接时,通常会发生此问题 .

  • 0

    答案是防火墙时不时改变主意 . 我之前无法测试,因为我无法访问它 . 现在我已经更改了设置,而我有这个封锁,它再次正常工作 . 所以答案是:始终可以访问防火墙,不要忘记检查它 .

相关问题