title: Inter process communication on same machine using tcp
body: <p>I have two processes Client and server.
  This are as follws :
  This is my client process:-</p>
  
  <pre><code>[Serializable ]
  public class retobj
  {
      public int a;
  
  }
  class client
  {
      static void Main(string[] args)
      {
          TcpClient client = new TcpClient();
          client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5005));
          Console.WriteLine("Connected.");
          retobj ob = new retobj();
          ob.a = 90;
          BinaryFormatter bf = new BinaryFormatter();
          NetworkStream ns = client.GetStream();
          bf.Serialize(ns, ob);
          Console.WriteLine("Data sent.");
          Console.ReadLine();
          ns.Close();
          client.Close();
      }
  }
  </code></pre>
  
  <p>And this is my server process:</p>
  
  <pre><code>[Serializable]
  public class retobj
  {
      public int a;
  
  }
  class server
  {
      static void Main(string[] args)
      {
          TcpListener listener = new TcpListener(IPAddress.Any, 5005);
          listener.Start();
          Console.WriteLine("Server started.");
          Socket client = listener.AcceptSocket();
          Console.WriteLine("Accepted client {0}.\n", client.RemoteEndPoint);
          List&lt;string&gt; l = null;
          retobj j = null;
          using (NetworkStream ns = new NetworkStream(client))
          {
              BinaryFormatter bf = new BinaryFormatter();
              j = (retobj )bf.Deserialize(ns);
          }
          //if (l != null)
          //    foreach (var item in l)
          //        Console.WriteLine(item);
          Console.WriteLine(j.a);
          Console.ReadLine();
          client.Close();
          listener.Stop();
      }
  </code></pre>
  
  <p>But it gives an error like:
  Error in server process:
  Unable to find assembly 'ConsoleApplication45, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.</p>