【发布时间】:2015-08-23 21:10:25
【问题描述】:
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);
在我的 PC 上运行时,此代码在最后一行出现“无法建立连接,因为目标计算机主动拒绝它”异常。任何想法可能是什么原因以及如何解决它?
【问题讨论】:
-
也许您在线程有机会运行之前调用了 Connect。通过在调用 connect 之前添加 Thread.Sleep 进行测试。
-
@Eser,很遗憾没有。它没有改变任何东西。
-
通过使用
ProtocolType.Tcp? -
@Eser,没有成功。也是。
-
那个代码是真正的代码吗?将其粘贴到 LINQPad 中即可。是否有防火墙阻止本地主机到本地主机的流量?!