Я пытаюсь провести модульное тестирование некоторых сообщений. код поверх TCP на C#. Я создал быстрый поток, который поддерживает 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"));
}