Ситуация такая:
Грубо говоря прокси сервер. Слушаем порт и если что, Сокет 1 принимает запросы от web-браузера, затем мы в программе немного изменяем запрос и передаем их Сокету 2, а тот передает запрос Web-серверу.
Соответственно потом мы получаем данные от Web-сервера на Сокет 2 и передаем их Сокету 1(браузеру).
Как это реализовать, просто столько классов (TcpListener, Socket у которого есть метод Listen, TcpClient), я запуталась.
И как это сделать в отдельных потоках?