繁体   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