Ejemplo n.º 1
0
        void Receiver()
        {
            values_for_the_base from_server_value;
            values_for_the_base send_strim = new values_for_the_base();

            try
            {
                while (client.Client.Connected)
                {
                    string type = string.Empty;

                    string read_or_not = br.ReadString();

                    if (read_or_not == "Я_без_грузу")
                    {
                        type = br.ReadString();
                        var a = prog.do_work(type.ToString(), null);
                        send_strim.dataset = (DataSet)a;
                        server_side.send(send_strim);
                    }
                    else
                    {
                        from_server_value = server_side.read();
                        var a = prog.do_work(from_server_value.dataset.DataSetName.ToString(), from_server_value.dataset);
                        send_strim.dataset = (DataSet)a;
                        server_side.send(send_strim);
                    }
                }
            }
            catch (Exception ep)
            {
                CloseConn();
            }
        }//end resiver
Ejemplo n.º 2
0
        public bool send(values_for_the_base value)
        {
            try
            {
                #region serialize
                BinaryFormatter formatter = new BinaryFormatter();
                MemoryStream    memstrm   = new MemoryStream();
                formatter.Serialize(memstrm, value);
                #endregion

                byte[] data = my_AES.Encrypt(memstrm.GetBuffer());

                NetworkStream stream  = this.my_client.GetStream();
                int           memsize = (int)data.Length;
                byte[]        size    = BitConverter.GetBytes(memsize);
                stream.Write(size, 0, 4);
                stream.Write(data, 0, (int)memsize);
                stream.Flush();

                memstrm.Close();
            }
            catch (Exception air)
            {
                System.Console.WriteLine("===========Exception=============");
                System.Console.WriteLine(air.ToString());
                System.Console.WriteLine("=================================");
                FileStream   file3  = new FileStream("exchange.txt", FileMode.Append);
                StreamWriter writer = new StreamWriter(file3);
                writer.WriteLine("\n\n*****************************************************");
                writer.WriteLine("DataTime:-->" + DateTime.Now.ToString());
                writer.WriteLine("function:-->send()");
                writer.WriteLine("===error====");
                writer.WriteLine(air.ToString());
                writer.WriteLine("===error====");
                writer.WriteLine("*****************************************************\n\n");
                writer.Close();


                return(false);
            }
            return(true);
        }
Ejemplo n.º 3
0
        public values_for_the_base read()
        {
            values_for_the_base p = null;

            try
            {
                NetworkStream stream = this.my_client.GetStream();
                byte[]        bsize  = new byte[4];
                if (stream.Read(bsize, 0, 4) != 4)
                {
                    throw new IndexOutOfRangeException();
                }
                int size = BitConverter.ToInt32(bsize, 0);

                byte[] bytes = new byte[size];

                int total_read = 0;
                var bytes_read = 0;
                //this.my_client.ReceiveTimeout = 2000;
                do
                {
                    try
                    {
                        bytes_read  = stream.Read(bytes, total_read, size - total_read);
                        total_read += bytes_read;
                    }
                    catch (IOException ex)
                    {
                        // if the ReceiveTimeout is reached an IOException will be raised...
                        // with an InnerException of type SocketException and ErrorCode 10060
                        var socketExept = ex.InnerException as SocketException;
                        if (socketExept == null || socketExept.ErrorCode != 10060)
                        {
                            // if it's not the "expected" exception, let's not hide the error
                            throw ex;
                        }
                        // if it is the receive timeout, then reading ended
                        bytes_read = 0;
                    }
                } while (bytes_read > 0 && total_read != size);


                byte[] decrypted = my_AES.Decrypt(bytes);

                MemoryStream memstrm = new MemoryStream();
                memstrm.Write(decrypted, 0, decrypted.Length);
                memstrm.Position = 0;

                BinaryFormatter formatter = new BinaryFormatter();
                p = (values_for_the_base)formatter.Deserialize(memstrm);

                stream.Flush();
                memstrm.Close();
            }
            catch (Exception air)
            {
                System.Console.WriteLine("===========Exception=============");
                System.Console.WriteLine(air.ToString());
                System.Console.WriteLine("=================================");
                FileStream   file3  = new FileStream("exchange.txt", FileMode.Append);
                StreamWriter writer = new StreamWriter(file3);
                writer.WriteLine("\n\n*****************************************************");
                writer.WriteLine("DataTime:-->" + DateTime.Now.ToString());
                writer.WriteLine("function:-->read()");
                writer.WriteLine("===error====");
                writer.WriteLine(air.ToString());
                writer.WriteLine("===error====");
                writer.WriteLine("*****************************************************\n\n");
                writer.Close();
            }
            return(p);
        }