using System.Net.Sockets;
public class Connection : IDisposable
private readonly string _host;
private readonly int _port;
private TcpClient _client;
private NetworkStream _networkStream;
private StreamReader _reader;
private StreamWriter _writer;
public Connection(string host, int port)
_client = new TcpClient(_host, _port);
_networkStream = _client.GetStream();
_reader = new StreamReader(_networkStream, Encoding.ASCII);
_writer = new StreamWriter(_networkStream, Encoding.ASCII)
public void SendMessage(string message)
_writer.WriteLine(message);
public string ReadMessage()
return _reader.ReadLine();
public static void Main()
using (var connection = new Connection("google.com", 80))
connection.SendMessage(message);
string response = connection.ReadMessage();
Console.WriteLine($"Received: {response})");