Таким образом, код принимает в качестве ввода IP-адрес и 2 порта.Первый порт используется в слушателе, а ip и второй порт для клиента.Я хочу соединиться с браузером, например, и программа берет то, что она получила, и отправляет ее в ip, используя TcpClient.Затем получает от сервера и отправляет то, что он получил обратно в браузер, и цикл повторяется.По сути, эта программа повторно отправляет мои запросы на другой ip и ответы на них.
Я уже пробовал 2 потока, поэтому он полный дуплекс с StreamWriters и считывателями, и он не работал.Мой код:
public static void createServer(string ip, int port, int fakeport)
{
TcpListener ls = new TcpListener(IPAddress.Any, fakeport);
ls.Start();
TcpClient inner = ls.AcceptTcpClient();
NetworkStream innerStream = inner.GetStream();
StreamReader _sInnerStream = new StreamReader(innerStream, Encoding.ASCII);
TcpClient serverClient = new TcpClient(ip, port);
NetworkStream outerStream = serverClient.GetStream();
StreamReader _sOuterStream = new StreamReader(outerStream, Encoding.ASCII);
while (true)
{
string incomingInner = _sInnerStream.ReadLine();
Console.WriteLine("Received from inner :" +incomingInner);
byte[] buffer = Encoding.ASCII.GetBytes(incomingInner);
// _rOuterStream.WriteLine(incomingInner);
// _rOuterStream.Flush();
innerStream.Write(buffer, 0, buffer.Length);
string response = _sOuterStream.ReadLine();
Console.WriteLine("Received response from outer :" + incomingInner);
byte[] buffer1 = Encoding.ASCII.GetBytes(response);
outerStream.Write(buffer1, 0, buffer1.Length);
}
}
Любая помощь будет принята с благодарностью.