Пример #1
0
    public BetterDataRcvr()
    {
        TcpListener server = new TcpListener(9050);

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

        SerialEmployee emp1 = RecvData(strm);

        Console.WriteLine("emp1.EmployeeID = {0}", emp1.EmployeeID);
        Console.WriteLine("emp1.LastName = {0}", emp1.LastName);
        Console.WriteLine("emp1.FirstName = {0}", emp1.FirstName);
        Console.WriteLine("emp1.YearsService = {0}", emp1.YearsService);
        Console.WriteLine("emp1.Salary = {0}\n", emp1.Salary);

        SerialEmployee emp2 = RecvData(strm);

        Console.WriteLine("emp2.EmployeeID = {0}", emp2.EmployeeID);
        Console.WriteLine("emp2.LastName = {0}", emp2.LastName);
        Console.WriteLine("emp2.FirstName = {0}", emp2.FirstName);
        Console.WriteLine("emp2.YearsService = {0}", emp2.YearsService);
        Console.WriteLine("emp2.Salary = {0}", emp2.Salary);
        strm.Close();
        server.Stop();
    }
Пример #2
0
    public BetterDataSender()
    {
        SerialEmployee emp1 = new SerialEmployee();
        SerialEmployee emp2 = new SerialEmployee();

        emp1.EmployeeID   = 1;
        emp1.LastName     = "Blum";
        emp1.FirstName    = "Katie Jane";
        emp1.YearsService = 12;
        emp1.Salary       = 35000.50;

        emp2.EmployeeID   = 2;
        emp2.LastName     = "Blum";
        emp2.FirstName    = "Jessica";
        emp2.YearsService = 9;
        emp2.Salary       = 23700.30;

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

        SendData(strm, emp1);
        SendData(strm, emp2);
        strm.Close();
        client.Close();
    }
Пример #3
0
    private SerialEmployee RecvData(NetworkStream strm)
    {
        MemoryStream memstrm = new MemoryStream();

        byte[] data   = new byte[4];
        int    recv   = strm.Read(data, 0, 4);
        int    size   = BitConverter.ToInt32(data, 0);
        int    offset = 0;

        while (size > 0)
        {
            data = new byte[1024];
            recv = strm.Read(data, 0, size);
            memstrm.Write(data, offset, recv);
            offset += recv;
            size   -= recv;
        }
        IFormatter formatter = new SoapFormatter();

        memstrm.Position = 0;
        SerialEmployee emp = (SerialEmployee)formatter.Deserialize(memstrm);

        memstrm.Close();
        return(emp);
    }
Пример #4
0
    private void SendData(NetworkStream strm, SerialEmployee emp)
    {
        IFormatter   formatter = new SoapFormatter();
        MemoryStream memstrm   = new MemoryStream();

        formatter.Serialize(memstrm, emp);
        byte[] data    = memstrm.GetBuffer();
        int    memsize = (int)memstrm.Length;

        byte[] size = BitConverter.GetBytes(memsize);
        strm.Write(size, 0, 4);
        strm.Write(data, 0, memsize);
        strm.Flush();
        memstrm.Close();
    }