c# - TcpListener - 无法建立连接,因为目标机器主动拒绝它

标签 c# .net sockets

        int port = 44344;

        var thread = new Thread(
            () =>
            {
                TcpListener listener = null;
                try
                {
                    listener = new TcpListener(IPAddress.Any, port);
                    listener.Start();

                    while (true)
                    {
                        var client = listener.AcceptTcpClient();
                    }
                }
                catch (ThreadInterruptedException)
                { }

                if (listener != null)
                    listener.Stop();
            });
        thread.Start();

        Thread.Sleep(TimeSpan.FromSeconds(1));

        var socket = new Socket(SocketType.Stream, ProtocolType.IP);
        socket.Connect("localhost", port);

在我的电脑上运行时,此代码在最后一行失败,并出现“无法建立连接,因为目标计算机主动拒绝”异常。有什么想法可能是什么原因以及如何解决它吗?

最佳答案

解决方案是创建指定了 AddressFamily 参数的客户端套接字:

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);

关于c# - TcpListener - 无法建立连接,因为目标机器主动拒绝它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171574/

相关文章:

.NET 4.5 MethodInfo 序列化重大更改

c# - 带有文本按钮的 WinForms 消息框

c# - TCP/IP客户端服务器在c#中通过不同网络进行通信

c# - 庞大的长列表和搜索最近的元素

c# - C# 中的可空字符串

c# - 如何防止控件在模式窗体打开时捕获 KeyDown 事件?

c# - 从调用进程获取命令行

c# - 什么可能导致 System.Windows.Forms.InputLanguage.CreateInputLanguageChangingEventArgs 中的溢出异常

python - Python 中的基本浏览器。从用户那里获取 URL

c# - 使用 Readline 后我的应用程序(服务器/客户端)被阻止