簡體   English   中英

TCPClient和套接字無法連接到服務器

[英]TCPClient & Sockets failing to connect to the Server

我在TCPListener / TCPClient基礎上與服務器的連接存在一個非常奇怪的問題。 在測試過程中的某個時刻,我無法再連接到我的服務器應用程序,每次嘗試都會超時。 雙方的Netstats均顯示,我的應用程序在正確的端口上進行偵聽,並且客戶端正在嘗試連接至正確的IP和端口,但它不會比“ SYN_SENT”更進一步。 服務器一直一直顯示“ LISTENING”。 我所能做的就是重新啟動PC,這可以暫時解決此問題。 但是經過一些連接后,它又重新開始了。 到目前為止,我測試了TCPClient和Sockets類以連接到服務器,但是都顯示了這種行為,這並不奇怪,因為TCPClient是Sockets類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;
        }
    }

處理連接的我的課堂的構造函數:

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);
    }

聽起來您正在耗盡所有連接或其他資源。

當您執行netstat -an時會看到什么? 您看到一堆開放的端口嗎?

有一個文章在這里那些可能幫助你在這里

遇到這種情況時,其他一些資源可能會殺死您,可能值得讓SA啟動資源監視器以檢查主機的運行狀況。

如果沒有拋出任何錯誤,那么會使您的生活變得更加艱難。 當您不徹底清理套接字斷開連接時,通常會發生此問題。

答案是防火牆時不時地改變主意。 我之前無法測試,因為我無法使用它。 現在,當我遇到此封鎖時,我已經更改了設置,它又能正常工作了。 因此,答案是:始終可以訪問防火牆,並且不要忘記對其進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM