【发布时间】:2011-05-18 04:57:54
【问题描述】:
我正在尝试对一些通信进行单元测试。在 C# 中通过 TCP 编写代码。我创建了一个支持 TcpListener 的快速线程。每次 TcpClient 尝试连接时,我都会收到“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”异常。您不能在同一进程中托管并连接到同一端口吗?
[Test]
public void Foo()
{
Thread listenerThread = new Thread(TcpListenerThread);
listenerThread.Start();
Thread.Sleep(5000);
TcpClient client = new TcpClient(new IPEndPoint(IPAddress.Loopback, 1234));
}
private void TcpListenerThread()
{
TcpListener listener = new TcpListener(IPAddress.Any, 1234);
listener.Start();
TcpClient socket = listener.AcceptTcpClient();
StreamWriter writer = new StreamWriter(socket.GetStream());
writer.Write(File.ReadAllBytes("../../random file.txt"));
}
【问题讨论】:
标签: c# multithreading tcpclient tcplistener