簡體   English   中英

C#TCP套接字客戶端拒絕連接

[英]C# TCP Socket Client refuses connection

這是我的服務器

當在Internet上使用多個不同的端口檢查工具時,我在服務器上建立了連接,表明我的端口已打開

http://www.infobyip.com/tcpportchecker.php

http://www.yougetsignal.com/tools/open-ports/

http://ping.eu/port-chk/

http://ping.eu/port-chk/

多個成功的連接

static void Main(string[] args)
{
    IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
    IPAddress ipAddress = ipHostInfo.AddressList[0];
    IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 10897);
    Console.WriteLine("Server Start");

    Socket listener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
    listener.Bind(localEndPoint);
    listener.Listen(10);
    while (true)
    {
        Console.WriteLine("Waiting for a connection...");
        Socket handler = listener.Accept();
        Console.WriteLine(handler.RemoteEndPoint);
        handler.Shutdown(SocketShutdown.Both);
        handler.Close();
    }
}

這是我的客戶代碼

 static void Main(string[] args)
 {
     IPEndPoint ip = new IPEndPoint(IPAddress.Parse("MY IP HERE"), 10897);
     Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     server.Connect(ip);
 }

我每次都會遇到此錯誤,我嘗試使用System.Net.Sockets.TcpClient和套接字從客戶端進行多次嘗試,並且每次我拒絕連接時,由於服務器從端口檢查器接收到連接,因此我的客戶端似乎出現了一些問題 錯誤

我已經閱讀了數十個其他套接字主題,但是所有問題都與服務器有關,而與客戶端無關,我不知道有人有什么問題可以幫助我嗎?

編輯:我可以通過本地主機(127.0.0.1)連接,但不能從我的公共IP連接

代碼工作正常(服務器的前兩行不執行任何操作)。 您有防火牆或路由問題。

看來問題出在我的路由器進行了一些設置,使其不接受與外部ip的內部連接,我讓我的朋友運行了客戶端代碼,並且連接正常

它與Windows防火牆異常有關。 首次運行時,系統會提示您允許連接。 如果您第一次允許,則在防火牆中創建例外。 也許你否認了。 還可以嘗試通過app.manifest為您的應用程序提升必需的特權

這似乎是端口轉發/路由問題。 使用端口檢查器檢查轉發的端口是否可訪問

暫無
暫無

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

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