Object data sender/Receiver : Object Send Receive : Network C# Examples


C# Examples » Network » Object Send Receive »

 

Object data sender/Receiver









    
using  System;
using  System.Net;
using  System.Net.Sockets;
using  System.Text;

class  EmployeeClient
{
      public  static  void  Main()
      {
            Employee  emp1  =  new  Employee();
            Employee  emp2  =  new  Employee();
            TcpClient  client;

            emp1.ID  =  1;
            emp1.LastName  =  "D";
            emp1.FirstName  =  "C";
            emp1.YearsService  =  12;
            emp1.Salary  =  35.50;

            emp2.ID  =  2;
            emp2.LastName  =  "B";
            emp2.FirstName  =  "A";
            emp2.YearsService  =  9;
            emp2.Salary  =  23.30;

            client  =  new  TcpClient("127.0.0.1",  9050);
            NetworkStream  ns  =  client.GetStream();

            byte[]  data  =  emp1.GetBytes();
            int  size  =  emp1.size;
            byte[]  packsize  =  new  byte[2];
            packsize  =  BitConverter.GetBytes(size);
            ns.Write(packsize,  0,  2);
            ns.Write(data,  0,  size);
            ns.Flush();

            data  =  emp2.GetBytes();
            size  =  emp2.size;
            packsize  =  new  byte[2];
            packsize  =  BitConverter.GetBytes(size);
            ns.Write(packsize,  0,  2);
            ns.Write(data,  0,  size);
            ns.Flush();
      
            ns.Close();
            client.Close();        
      }
}




class  Employee
{
      public  int  ID;
      private  int  LastNameSize;
      public  string  LastName;
      private  int  FirstNameSize;
      public  string  FirstName;
      public  int  YearsService;
      public  double  Salary;
      public  int  size;

      public  Employee()
      {
      }

      public  Employee(byte[]  data)
      {
            int  place  =  0;
            ID  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            LastNameSize  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            LastName  =  Encoding.ASCII.GetString(data,  place,  LastNameSize);
            place  =  place  +  LastNameSize;
            FirstNameSize  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            FirstName  =  Encoding.ASCII.GetString(data,  place,  FirstNameSize);
            place  +=  FirstNameSize;
            YearsService  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            Salary  =  BitConverter.ToDouble(data,  place);
      }

      public  byte[]  GetBytes()
      {
            byte[]  data  =  new  byte[1024];
            int  place  =  0;
            Buffer.BlockCopy(BitConverter.GetBytes(ID),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(BitConverter.GetBytes(LastName.Length),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(LastName),  0,  data,  place,  LastName.Length);
            place  +=  LastName.Length;
            Buffer.BlockCopy(BitConverter.GetBytes(FirstName.Length),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(FirstName),  0,  data,  place,  FirstName.Length);
            place  +=  FirstName.Length;
            Buffer.BlockCopy(BitConverter.GetBytes(YearsService),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(BitConverter.GetBytes(Salary),  0,  data,  place,  8);
            place  +=  8;
            size  =  place;
            return  data;
      }
      public  void  Display(){
            Console.WriteLine("ID  =  {0}",  ID);
            Console.WriteLine("LastName  =  {0}",  LastName);
            Console.WriteLine("FirstName  =  {0}",  FirstName);
            Console.WriteLine("YearsService  =  {0}",  YearsService);
            Console.WriteLine("Salary  =  {0}\n",  Salary);
      }
}
    
   
  
   





    
using  System;
using  System.Net;
using  System.Net.Sockets;
using  System.Text;

class  EmployeeSrvr
{
      public  static  void  Main()
      {
            byte[]  data  =  new  byte[1024];
            TcpListener  server  =  new  TcpListener(9050);

            server.Start();
            TcpClient  client  =  server.AcceptTcpClient();
            NetworkStream  ns  =  client.GetStream();

            byte[]  size  =  new  byte[2];
            int  recv  =  ns.Read(size,  0,  2);
            int  packsize  =  BitConverter.ToInt16(size,  0);
            recv  =  ns.Read(data,  0,  packsize);

            Employee  emp1  =  new  Employee(data);
            emp1.Display();
  
            size  =  new  byte[2];
            recv  =  ns.Read(size,  0,  2);
            packsize  =  BitConverter.ToInt16(size,  0);
            data  =  new  byte[packsize];
            recv  =  ns.Read(data,  0,  packsize);

            Employee  emp2  =  new  Employee(data);
            emp2.Display();

            ns.Close();
            client.Close();
            server.Stop();

      }
}

class  Employee
{
      public  int  ID;
      private  int  LastNameSize;
      public  string  LastName;
      private  int  FirstNameSize;
      public  string  FirstName;
      public  int  YearsService;
      public  double  Salary;
      public  int  size;

      public  Employee()
      {
      }

      public  Employee(byte[]  data)
      {
            int  place  =  0;
            ID  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            LastNameSize  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            LastName  =  Encoding.ASCII.GetString(data,  place,  LastNameSize);
            place  =  place  +  LastNameSize;
            FirstNameSize  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            FirstName  =  Encoding.ASCII.GetString(data,  place,  FirstNameSize);
            place  +=  FirstNameSize;
            YearsService  =  BitConverter.ToInt32(data,  place);
            place  +=  4;
            Salary  =  BitConverter.ToDouble(data,  place);
      }

      public  byte[]  GetBytes()
      {
            byte[]  data  =  new  byte[1024];
            int  place  =  0;
            Buffer.BlockCopy(BitConverter.GetBytes(ID),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(BitConverter.GetBytes(LastName.Length),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(LastName),  0,  data,  place,  LastName.Length);
            place  +=  LastName.Length;
            Buffer.BlockCopy(BitConverter.GetBytes(FirstName.Length),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(FirstName),  0,  data,  place,  FirstName.Length);
            place  +=  FirstName.Length;
            Buffer.BlockCopy(BitConverter.GetBytes(YearsService),  0,  data,  place,  4);
            place  +=  4;
            Buffer.BlockCopy(BitConverter.GetBytes(Salary),  0,  data,  place,  8);
            place  +=  8;
            size  =  place;
            return  data;
      }
      public  void  Display(){
            Console.WriteLine("ID  =  {0}",  ID);
            Console.WriteLine("LastName  =  {0}",  LastName);
            Console.WriteLine("FirstName  =  {0}",  FirstName);
            Console.WriteLine("YearsService  =  {0}",  YearsService);
            Console.WriteLine("Salary  =  {0}\n",  Salary);
      }
}
    
   
  
   




HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Network
» Object Send Receive