using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; class TcpServer { static void Main(string[] args) { try { int listenPort = 8234; IPAddress localAddr = IPAddress.Parse("192.168.10.106"); //int listenPort = 8234; //IPAddress localAddr = IPAddress.Parse("10.1.162.119"); TcpListener server = new TcpListener(localAddr, listenPort); server.Start(); Console.WriteLine(DateTime.Now.ToString()+"Server started..."); while (true) { TcpClient client = server.AcceptTcpClient(); Console.WriteLine(DateTime.Now.ToString() + "Connected!"); Task.Run(() => HandleClientAsync(client)); } }catch (Exception ex) { Console.WriteLine(DateTime.Now.ToString() + ex.Message); Console.ReadKey(); } } static async Task HandleClientAsync(TcpClient client) { NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024000000]; int bytesRead; try { while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0) { string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine(DateTime.Now.ToString() + $"Received: {receivedData}"); // Forward the data to another server await ForwardDataAsync(receivedData, "192.168.5.100", 8899); //await ForwardDataAsync(receivedData, "10.1.162.119", 8899); } } catch (Exception ex) { Console.WriteLine(DateTime.Now.ToString() + $"Error: {ex.Message}"); } client.Close(); } static async Task ForwardDataAsync(string data, string ip, int port) { using (TcpClient forwardClient = new TcpClient(ip, port)) { NetworkStream forwardStream = forwardClient.GetStream(); byte[] dataToSend = Encoding.ASCII.GetBytes(data); await forwardStream.WriteAsync(dataToSend, 0, dataToSend.Length); Console.WriteLine(DateTime.Now.ToString() + $"Data forwarded to {ip}:{port}"); } } }