Пример #1
0
        private void PushLocalBuffer(byte[] buffer, int offset, int count)
        {
            if ((_ReceiveOffset + count) > _ReceiveBuffer.Length)
            {
                throw new Exception("客户端信息数据超出当前接收缓存大小!");
            }

            Array.Copy(buffer, offset, _ReceiveBuffer, _ReceiveOffset, count);

            _ReceiveOffset += count;

            Console.WriteLine("添加数据缓存 当前缓存长度:{0}", _ReceiveOffset);

            List <byte[]> messagebuffers = MessageCoding.MessageDecoding(ref _ReceiveBuffer, ref _ReceiveOffset);

            foreach (var mm in messagebuffers)
            {
                Console.WriteLine("提取报文信息");

                MemoryStream ms = new MemoryStream(mm, 0, mm.Length);

                CMD_LG_CTL_REGIST mss2 = Serializer.Deserialize <CMD_LG_CTL_REGIST>(ms);

                Console.WriteLine("account:{0},code:{1},psd:{2}", mss2.account, mss2.code, mss2.psw);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            CMD_LG_CTL_REGIST mss = new CMD_LG_CTL_REGIST();

            mss.account = "rrrrr";

            MemoryStream ms = new MemoryStream();

            Serializer.Serialize <CMD_LG_CTL_REGIST>(ms, mss);

            ms.Position = 0;
            CMD_LG_CTL_REGIST mss2 = Serializer.Deserialize <CMD_LG_CTL_REGIST>(ms);

            Console.Read();
        }
Пример #3
0
        static void CreatOneConnect()
        {
            try
            {
                int        port = 2012;
                string     host = "127.0.0.1";
                IPAddress  ip   = IPAddress.Parse(host);
                IPEndPoint ipe  = new IPEndPoint(ip, port);                                                    //把ip和端口转化为IPEndPoint实例
                Socket     c    = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建一个Socket
                Console.WriteLine("Conneting...");
                c.Connect(ipe);                                                                                //连接到服务器


                CMD_LG_CTL_REGIST rep = new CMD_LG_CTL_REGIST();
                rep.account = "root";
                rep.code    = "bsadsdfasf";
                rep.psw     = "123456";

                MemoryStream ms = new MemoryStream();
                Serializer.Serialize <CMD_LG_CTL_REGIST>(ms, rep);

                byte[] entityData = ms.ToArray();


                byte[] messagedate = MessageCoding.MessageEncoding(entityData);


                c.Send(messagedate, messagedate.Length, 0);
                c.Send(messagedate, messagedate.Length, 0);
                c.Send(messagedate, messagedate.Length, 0);
                c.Send(messagedate, messagedate.Length, 0);
                c.Send(messagedate, messagedate.Length, 0);
                c.Send(messagedate, messagedate.Length, 0);



                //for (int i = 0; i < 3; i++)
                //{
                //    string sendStr = "hello!This is a socket test";
                //    byte[] bs = Encoding.ASCII.GetBytes(sendStr);
                //    Console.WriteLine("Send Message");
                //    c.Send(bs, bs.Length, 0);//发送测试信息
                //    string recvStr = "";
                //    byte[] recvBytes = new byte[1024];
                //    int bytes;
                //    bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
                //    recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
                //    Console.WriteLine("Client Get Message:{0}", recvStr);//显示服务器返回信息
                //}

                Console.Write("断开连接");
                //c.Close();
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine("ArgumentNullException: {0}", e);
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
        }