[英]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.