Exemple #1
0
        public static ArrayList GetDingxinTicket(string cinemaid, string mobile, string num)
        {
            string url = "https://119.10.114.212/buy/ticketPrint/?";
            // string url = "https://member.hipiao.com/buy/ticketPrint/?";
            // &sig=4767a67b88fb92a37a619e9ab01287
            // "cid=1&mobile=13269402753&num=694540&print=1"
            string param    = string.Format("cid={0}&mobile={1}&num={2}&print=1", cinemaid, mobile, num);
            string authCode = "4fjrh0t9o5mygjb8";
            string temp     = "e99a18c428cb38d5f260853678922e03";
            string temp2    = "e99a18c428cb38d5f260853678922e3";
            string aaa      = md5("abc123");
            //MD5Security md5=new MD5Security();
            string sig    = md5(md5(authCode + param) + authCode);
            string result = CommonHiPiaoStringOperator.GetPageReSource(url + param + "&sig=" + sig, "utf-8");

            Console.WriteLine("调用鼎新接口" + url + param + "&sig=" + sig + "返回结果为:" + result);
            DingXinResponseObject response          = DingXinResponseObject.Parse(result);
            ArrayList             tickets           = new ArrayList();
            TicketPrintObject     ticketPrintObject = null;
            string printtime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            if (response.res.data.item.Count > 0)
            {
                ItemObject item = null;
                for (int i = 0; i < response.res.data.item.Count; i++)
                {
                    ticketPrintObject = new TicketPrintObject();
                    item = response.res.data.item[i];
                    ticketPrintObject.Cinema    = response.res.data.CNAME;
                    ticketPrintObject.MovieName = response.res.data.CHNAME;
                    ticketPrintObject.RoomName  = response.res.data.hName;
                    ticketPrintObject.PlayDate  = response.res.data.start.Substring(0, 10);
                    ticketPrintObject.PlayTime  = response.res.data.start.Substring(11, 8);
                    ticketPrintObject.PrintTime = printtime;
                    ticketPrintObject.Price     = Convert.ToInt32(Convert.ToDecimal(item.price));
                    ticketPrintObject.Seat      = item.seat;
                    ticketPrintObject.MiddleFee = item.handleFee;
                    ticketPrintObject.TicketId  = item.no;
                    ticketPrintObject.IsPrinted = item.printed == "1";
                    tickets.Add(ticketPrintObject);
                }
            }
            //string ttt = "";
            // return null;
            return(tickets);
        }
        public TicketPrintObject GetTicket(string mobile, string valid)
        {
            if (mobile == "neterror")
            {
                throw new Exception("eee");
            }
            TicketPrintObject ticket = null;

            if (mobile == "12345678901")
            {
                ticket = this.MockTicketPrint();
            }
            if (ticket != null && valid == "000000")
            {
                ticket.IsPrinted = true;
            }
            return(ticket);
        }
Exemple #3
0
 private void button1_Click(object sender, EventArgs e)
 {
     GlobalHardwareTools.OpenHotPrinter();
     TicketPrintObject ticket = new HiPiaoInterface.TicketPrintObject();
     ticket.Seat = "9排5号";
     ticket.MovieName = "超人归来";
     ticket.Cinema = "模拟影院";
     ticket.TicketId = "0000FED001";
     ticket.RoomName = "2号厅";
     ticket.Price = 25;
     ticket.PrintTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     ticket.PlayTime = "11:30";
     ticket.PlayDate = System.DateTime.Now.ToString("yyyy.MM.dd");
     //ticket.Movie = new MovieObject();
     GlobalHardwareTools.ticket = ticket;
     GlobalHardwareTools.PrintTicket();
     GlobalHardwareTools.CloseHotPrinter();
 }
Exemple #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            GlobalHardwareTools.OpenHotPrinter();
            TicketPrintObject ticket = new HiPiaoInterface.TicketPrintObject();

            ticket.Seat      = "9排5号";
            ticket.MovieName = "超人归来";
            ticket.Cinema    = "模拟影院";
            ticket.TicketId  = "0000FED001";
            ticket.RoomName  = "2号厅";
            ticket.Price     = 25;
            ticket.PrintTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            ticket.PlayTime  = "11:30";
            ticket.PlayDate  = System.DateTime.Now.ToString("yyyy.MM.dd");
            //ticket.Movie = new MovieObject();
            GlobalHardwareTools.ticket = ticket;
            GlobalHardwareTools.PrintTicket();
            GlobalHardwareTools.CloseHotPrinter();
        }
        public TicketPrintObject GetTicket(string mobile, string valid)
        {
            TicketPrintObject ticket = null;

            return(ticket);
        }
Exemple #6
0
        // public
        public static void PrintTickets(TicketPrintObject ticket)
        {
            if (ticket != null)
            {
                // MyOpaqueLayerTools.ShowOpaqueLayer(this.panelHeader, 60, true);
                GlobalHardwareTools.OpenHotPrinter();
                GlobalHardwareTools.PrintTicket(ticket);

                GlobalHardwareTools.CloseHotPrinter();

            }
        }
        private void btnPay_Click(object sender, EventArgs e)
        {
            if (selectedSeat.Count == 0)
            {
                return;
            }

            if (GlobalTools.GetLoginUser().Balance < Convert.ToDouble(this.lbTotalPrice.Text))
            {
                GlobalTools.Pop(new BuyMoneyHint());
                return;
            }
            List<TicketPrintObject> tickets = new List<TicketPrintObject>();
            System.Collections.IDictionaryEnumerator enumerator = selectedSeat.GetEnumerator();
            TicketPrintObject ticket = null;
            SeatObject seat = null;
            SystemConfig config=FT.Commons.Cache.StaticCacheManager.GetConfig<SystemConfig>();
            while (enumerator.MoveNext())
            {
                ticket = new TicketPrintObject();
                seat = enumerator.Value as SeatObject;
                ticket.Seat = string.Format("{0}排{1}号", seat.RowNum, seat.SeatNo); ;
                ticket.MovieName = movie.Name;
                ticket.Cinema =config.Cinema;
                ticket.TicketId = "0000FED001";
                ticket.RoomName = roomPlan.RoomName;
                ticket.Price = Convert.ToInt32(roomPlan.SPrice);
                ticket.PrintTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                ticket.PlayTime = roomPlan.Playtime;
                ticket.PlayDate = Convert.ToDateTime(roomPlan.Playtime).ToString("yyyy.MM.dd");
                ticket.PlanId = roomPlan.PlanId;
                //ticket.PlanId = roomPlan.PlanId.Substring(0, 16);
                ticket.SeatId = seat.SeatId;
                ticket.Phone = GlobalTools.GetLoginUser().Mobile;
                tickets.Add(ticket);

            }
            //GlobalTools.Pop(new CosumeDetailPanel(tickets, movie, moviePlan));
               // GlobalTools.GoPanel(new WaitTicketPrintPanel(tickets, movie, moviePlan));
            GlobalTools.GoPanel(new UserPayCheckPanel(tickets,movie,moviePlan,roomPlan,dt));
        }
        public static void PrintTicket(TicketPrintObject ticketTmp)
        {
            SystemConfig config = FT.Commons.Cache.StaticCacheManager.GetConfig<SystemConfig>();
            if (config.PrinterType == "Windows")
            {
                PrintWindowsTemplate(ticketTmp, "TicketTemplate-Windows.txt");
            }
            else
            {

                PrintTemplate(ticketTmp, "TicketTemplate.txt");
            }
        }
Exemple #9
0
        public static ArrayList GetTicket(string host, int port, byte[] pack, TextBox txt)
        {
            sbTmp = new StringBuilder();
#if DEBUG
            WriteLog("客户端开始连接!", txt);
#endif
            try
            {
                // int port = 2908;
                // string host = "119.10.114.212";

                // string host = "58.62.144.227";
                //   int port = 2907;

                // string host = "10.12.23.216";
                //   int port = 2907;

                IPAddress ip = IPAddress.Parse(host);

                IPEndPoint ipe = new IPEndPoint(ip, port);                                              //把ip和端口转化为IPEndPoint实例

                Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建一个Socket
#if DEBUG
                WriteLog("开始连接服务器IP:" + ip + ",端口" + port + "...", txt);
#endif
                // c.ReceiveTimeout = 100;
                // c.SendTimeout = 1000;
                // c.Connect(ipe,
                c.Connect(ipe);//连接到服务器
#if DEBUG
                WriteLog("完成连接服务器...", txt);



                //string sendStr = str;



                WriteLog("发送取票内容为:" + pack, txt);

                WriteLog("Hex输出为:" + GetHexOutput(pack), txt);
#endif

                c.Send(pack, pack.Length, 0);//发送测试信息

                string recvStr = "";

                byte[] recvBytes = new byte[1024];

                int bytes;

#if DEBUG
                WriteLog("开始从服务器接收内容...", txt);
#endif
                int    readTime    = 0;
                byte[] heads1      = new byte[5];
                byte[] heads2      = new byte[22];
                bool   beginAccept = true;
                int    acceptByte  = 0;
                while (beginAccept)
                {
                    acceptByte = c.Receive(heads1, heads1.Length, SocketFlags.None);
#if DEBUG
                    WriteLog("尝试接收5字节,实际接收结果为:" + acceptByte.ToString(), txt);
#endif
                    if (acceptByte == 5)
                    {
                        break;
                    }
                }
                while (beginAccept)
                {
                    acceptByte = c.Receive(heads2, heads2.Length, SocketFlags.None);
#if DEBUG
                    WriteLog("尝试接收22字节,实际接收结果为:" + acceptByte.ToString(), txt);
#endif
                    if (acceptByte == 22)
                    {
                        break;
                    }
                }
                byte[] lens = new byte[4];
                Array.Copy(heads2, 1, lens, 0, lens.Length);
                int len = HiPiaoProtocol.GetDataPackageLen(lens);
                len -= 22;
#if DEBUG
                byte[] dataLength = BitConverter.GetBytes(1484);
                WriteLog("changdu:" + GetHexOutput(dataLength), txt);

                WriteLog("Hex输出为:" + GetHexOutput(heads1), txt);

                WriteLog("获取报文包头并解析的长度为" + len, txt);

                WriteLog("Hex输出为:" + GetHexOutput(heads2), txt);
#endif

                /*
                 * byte[] allpackage = new byte[len];
                 * while (beginAccept)
                 * {
                 *
                 *  acceptByte=c.Receive(allpackage);
                 #if DEBUG
                 *  WriteLog("尝试接收" + len.ToString()+ "字节,实际接收结果为:" + acceptByte.ToString(), txt);
                 #endif
                 *  if (acceptByte>0)
                 *  {
                 *
                 *      break;
                 *  }
                 *
                 * }
                 */
                byte[] allpackage    = new byte[len];
                byte[] bufferTmp     = new byte[1024];
                int    needAcceptLen = len < 1024?len:1024;
                int    acceptLen     = 0;
                // bool needAccept=true;
                while (needAcceptLen > 0)
                {
                    acceptByte = c.Receive(allpackage, acceptLen, needAcceptLen, SocketFlags.None);
#if DEBUG
                    WriteLog("尝试接收" + needAcceptLen.ToString() + "字节,实际接收结果为:" + acceptByte.ToString(), txt);
#endif
                    acceptLen += acceptByte;
                    if (acceptLen < len)
                    {
                        needAcceptLen = len - acceptLen < 1024 ? len - acceptLen : 1024;
                    }
                    else
                    {
                        needAcceptLen = 0;
                        break;
                    }
                }
                // acceptByte = c.Receive(allpackage);
#if DEBUG
                //   WriteLog("尝试接收2字节,实际接收结果为:" + acceptByte.ToString(), txt);
#endif
#if DEBUG
                WriteLog("开始断开服务器连接...", txt);
#endif
                c.Close();
#if DEBUG
                WriteLog("完成断开服务器连接", txt);
#endif
                // List<TicketPrintObject> tickets = new List<TicketPrintObject>();
                ArrayList tickets = new ArrayList();

                string tmpstr = Encoding.GetEncoding("GBK").GetString(allpackage, 0, len);
#if DEBUG
                if (tmpstr.StartsWith("取票失败:"))
                {
                    WriteLog("最终取票结果的字符串为:" + tmpstr, txt);
                }
                WriteAllString(sbTmp.ToString());
                sbTmp = new StringBuilder();
                // string tmpstr7ttt = ReadAllString();
#endif
                if (tmpstr.StartsWith("取票失败:"))
                {
                    TicketPrintObject tmpTicket1 = new TicketPrintObject();
                    tmpTicket1.IsPrinted = true;
                    tickets.Add(tmpTicket1);
                    return(tickets);
                }
                string[] tmpstr1 = tmpstr.Split('\r');
                string[] tmpstr2 = tmpstr1[1].Split('\n');
                GetTicketPrintObject[] ticketsObjects = new GetTicketPrintObject[tmpstr2.Length];
                GetTicketPrintObject   tmpTicket      = null;
                for (int i = 0; i < tmpstr2.Length; i++)
                {
                    string[] tmpstr3 = tmpstr2[i].Split('\t');
#if DEBUG
                    if (tmpstr3.Length == 7)
                    {
                        WriteLog("票据唯一标识:" + tmpstr3[0], txt);
                        WriteLog("正副券标识:" + tmpstr3[1], txt);
                        WriteLog("打印X坐标:" + tmpstr3[2], txt);
                        WriteLog("打印Y坐标:" + tmpstr3[3], txt);
                        WriteLog("字体大小:" + tmpstr3[4], txt);
                        WriteLog("是否加粗:" + tmpstr3[5], txt);
                        WriteLog("打印项内容:" + tmpstr3[6], txt);
                    }
#endif
                    if (tmpstr3.Length != 7)
                    {
                        break;
                    }
                    else
                    {
                        tmpTicket            = new GetTicketPrintObject();
                        tmpTicket.Id         = tmpstr3[0];
                        tmpTicket.Id2        = tmpstr3[1];
                        tmpTicket.X          = Convert.ToInt32(tmpstr3[2]);
                        tmpTicket.Y          = Convert.ToInt32(tmpstr3[3]);
                        tmpTicket.FontWeight = Convert.ToInt32(tmpstr3[4]);
                        tmpTicket.IsBold     = tmpstr3[5] == "1";
                        tmpTicket.Content    = tmpstr3[6];
                        ticketsObjects[i]    = tmpTicket;
                    }
                }
#if DEBUG
                WriteLog("从服务器接收内容长度为:" + allpackage + " 内容为:" + tmpstr, txt);
                WriteLog("Hex输出为:" + GetHexOutput(allpackage), txt);
#endif
                // for()

                /*
                 *
                 * while (readTime<3)
                 * {
                 * // bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
                 *  //c.Receive(
                 *
                 *  bytes = c.Receive(recvBytes);
                 *
                 *
                 *  byte[] data = new byte[bytes];
                 *  Array.Copy(recvBytes, data, data.Length);
                 *
                 *  recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
                 #if DEBUG
                 *  Console.WriteLine("从服务器第"+readTime.ToString()+"次接收内容长度为:" + bytes + " 内容为:" + recvStr);
                 *  Console.WriteLine("Hex输出为:" + GetHexOutput(data));
                 #endif
                 *  //    Console.WriteLine("发送取票获取结果内容为:{0}", recvStr);//显示服务器返回信息
                 *
                 *  readTime++;
                 * }
                 * * */

                // return recvStr;
                //int count = tmpstr.Split("出票时间".ToCharArray()).Length-1;

                string strReplaced = tmpstr.Replace("出票时间", "");



                int count = (tmpstr.Length - strReplaced.Length) / "出票时间".Length;



                TicketPrintObject  ticketPrintObject = null;
                SellProductPrinter sellProduct       = null;
                int    startindex  = 0;
                string tmpid1      = string.Empty;
                int    num         = 16;
                int    sellcount   = 0;
                int    ticketcount = 0;

                for (int i = 0; i < count; i++)
                {
                    //if (tmpstr2[startindex].IndexOf("出票时间")!=-1)
                    if (tmpid1.Length > 0 && ticketsObjects[startindex].Content.StartsWith("名称"))
                    {
                        //startindex +=sellcount*8;
                        sellProduct = new SellProductPrinter();

                        sellProduct.Id          = ticketsObjects[startindex + 0].Id;
                        sellProduct.Id2         = ticketsObjects[startindex + 0].Id2;
                        sellProduct.ProductName = ticketsObjects[startindex + 0].Content.Substring(3);
                        sellProduct.Price       = ticketsObjects[startindex + 1].Content.Substring(3);
                        sellProduct.PlayDate    = ticketsObjects[startindex + 2].Content.Substring(4);

                        sellProduct.PlayTime = ticketsObjects[startindex + 3].Content.Substring(5);
                        sellProduct.Content  = ticketsObjects[startindex + 4].Content.Substring(3);
                        sellProduct.Cinema   = ticketsObjects[startindex + 5].Content;

                        sellProduct.HipiaoCard = ticketsObjects[startindex + 6].Content.Substring(4);
                        sellProduct.PrintTime  = ticketsObjects[startindex + 7].Content.Substring(5);

                        tickets.Add(sellProduct);
                        sellcount++;
                        startindex += 8;
                        continue;
                    }
                    else
                    {
                        tmpid1 = ticketsObjects[startindex + 0].Id;
                        // startindex += ticketcount * 16;



                        ticketPrintObject           = new TicketPrintObject();
                        ticketPrintObject.Cinema    = ticketsObjects[startindex + 0].Content;
                        ticketPrintObject.UniqueId  = tmpid1;
                        ticketPrintObject.IsPrinted = false;
                        ticketPrintObject.MovieName = ticketsObjects[startindex + 1].Content.Substring(3);
                        ticketPrintObject.TicketId  = ticketsObjects[startindex + 2].Content.Substring(3);
                        // string ttt = ticketsObjects[startindex + 3].Content.Substring(4);

                        ticketPrintObject.Price = Convert.ToInt32(Convert.ToDouble(ticketsObjects[startindex + 3].Content.Substring(4)));

                        ticketPrintObject.PlayTime = ticketsObjects[startindex + 4].Content;

                        ticketPrintObject.RoomName = ticketsObjects[startindex + 6].Content.Substring(3);

                        ticketPrintObject.Seat = ticketsObjects[startindex + 7].Content.Substring(3);

                        ticketPrintObject.PlayDate = ticketsObjects[startindex + 8].Content.Substring(3);

                        if (ticketsObjects[startindex + 14].Content.StartsWith("出票时间"))
                        {
                            ticketPrintObject.PrintTime = ticketsObjects[startindex + 14].Content.Substring(5);
                        }
                        else if (ticketsObjects[startindex + 14].Content.StartsWith("手续费"))
                        {
                            ticketPrintObject.MiddleFee = ticketsObjects[startindex + 14].Content.Substring(5);
                        }

                        if (ticketsObjects[startindex + 15].Content.StartsWith("出票时间"))
                        {
                            ticketPrintObject.PrintTime = ticketsObjects[startindex + 15].Content.Substring(5);
                        }
                        else if (ticketsObjects[startindex + 15].Content.StartsWith("手续费"))
                        {
                            ticketPrintObject.MiddleFee = ticketsObjects[startindex + 15].Content.Substring(5);
                        }

                        ticketPrintObject.ChangCi = ticketsObjects[startindex + 13].Content;

                        ticketPrintObject.SeatId = string.Empty;

                        tickets.Add(ticketPrintObject);
                        ticketcount++;
                        startindex += 16;
                        continue;
                    }
                }
#if DEBUG
                WriteLog("获取票的个数为:" + tickets.Count.ToString(), txt);
                WriteAllString(sbTmp.ToString());
#endif

                return(tickets);
            }

            catch (ArgumentNullException e)
            {
                WriteLog(string.Format("ArgumentNullException: {0}", e), txt);
                sbTmp.Append("\r\n");
                sbTmp.Append(e.ToString());
                WriteAllString(sbTmp.ToString());
                return(null);
            }

            catch (SocketException e)
            {
                WriteLog(string.Format("SocketException: {0}", e), txt);
                sbTmp.Append("\r\n");
                sbTmp.Append(e.ToString());
                WriteAllString(sbTmp.ToString());
                throw e;
                // return null;
            }


#if DEBUG
            WriteLog("客户端连接完成!", txt);
            WriteAllString(sbTmp.ToString());
#endif
            return(null);
        }
Exemple #10
0
 public static ArrayList GetDingxinTicket(string cinemaid,string mobile, string num)
 {
     string url = "https://119.10.114.212/buy/ticketPrint/?";
        // string url = "https://member.hipiao.com/buy/ticketPrint/?";
        // &sig=4767a67b88fb92a37a619e9ab01287
        // "cid=1&mobile=13269402753&num=694540&print=1"
     string param =string.Format( "cid={0}&mobile={1}&num={2}&print=1",cinemaid,mobile,num);
     string authCode = "4fjrh0t9o5mygjb8";
     string temp = "e99a18c428cb38d5f260853678922e03";
     string temp2 ="e99a18c428cb38d5f260853678922e3";
     string aaa = md5("abc123");
     //MD5Security md5=new MD5Security();
     string sig = md5(md5(authCode+param)+authCode);
     string result = CommonHiPiaoStringOperator.GetPageReSource(url + param + "&sig=" + sig, "utf-8");
     Console.WriteLine("调用鼎新接口" + url + param + "&sig=" + sig + "返回结果为:" + result);
     DingXinResponseObject response = DingXinResponseObject.Parse(result);
     ArrayList tickets = new ArrayList();
     TicketPrintObject ticketPrintObject = null;
     string printtime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     if (response.res.data.item.Count > 0)
     {
         ItemObject item = null;
         for (int i = 0; i < response.res.data.item.Count; i++)
         {
             ticketPrintObject = new TicketPrintObject();
             item = response.res.data.item[i];
             ticketPrintObject.Cinema = response.res.data.CNAME;
             ticketPrintObject.MovieName = response.res.data.CHNAME;
             ticketPrintObject.RoomName = response.res.data.hName;
             ticketPrintObject.PlayDate = response.res.data.start.Substring(0,10);
             ticketPrintObject.PlayTime = response.res.data.start.Substring(11, 8);
             ticketPrintObject.PrintTime = printtime;
             ticketPrintObject.Price =Convert.ToInt32( Convert.ToDecimal(item.price));
             ticketPrintObject.Seat = item.seat;
             ticketPrintObject.MiddleFee = item.handleFee;
             ticketPrintObject.TicketId = item.no;
             ticketPrintObject.IsPrinted = item.printed == "1";
             tickets.Add(ticketPrintObject);
         }
     }
     //string ttt = "";
        // return null;
     return tickets;
 }
Exemple #11
0
        public static ArrayList GetTicket(string host, int port, byte[] pack, TextBox txt)
        {
            sbTmp = new StringBuilder();
            #if DEBUG
            WriteLog("客户端开始连接!",txt);

            #endif
            try
            {

               // int port = 2908;
               // string host = "119.10.114.212";

               // string host = "58.62.144.227";
             //   int port = 2907;

               // string host = "10.12.23.216";
                //   int port = 2907;

                IPAddress ip = IPAddress.Parse(host);

                IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例

                Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
            #if DEBUG
                WriteLog("开始连接服务器IP:" + ip + ",端口" + port + "...",txt);

            #endif
               // c.ReceiveTimeout = 100;
               // c.SendTimeout = 1000;
               // c.Connect(ipe,
                c.Connect(ipe);//连接到服务器
            #if DEBUG
                WriteLog("完成连接服务器...",txt);

                //string sendStr = str;

                WriteLog("发送取票内容为:" + pack,txt);

                WriteLog("Hex输出为:"+GetHexOutput(pack),txt);

            #endif

                c.Send(pack, pack.Length, 0);//发送测试信息

                string recvStr = "";

                byte[] recvBytes = new byte[1024];

                int bytes;

            #if DEBUG
                WriteLog("开始从服务器接收内容...",txt);

            #endif
                int readTime=0;
                byte[] heads1=new byte[5];
                byte[] heads2 = new byte[22];
                bool beginAccept = true;
                int acceptByte = 0;
                while (beginAccept)
                {
                    acceptByte=c.Receive(heads1, heads1.Length, SocketFlags.None);
            #if DEBUG
                    WriteLog("尝试接收5字节,实际接收结果为:" + acceptByte.ToString(), txt);
            #endif
                    if (acceptByte == 5)
                    {
                        break;
                    }
                }
                while (beginAccept)
                {
                    acceptByte = c.Receive(heads2, heads2.Length, SocketFlags.None);
            #if DEBUG
                    WriteLog("尝试接收22字节,实际接收结果为:"+acceptByte.ToString(),txt);
            #endif
                    if (acceptByte == 22)
                    {
                        break;
                    }
                }
                byte[] lens=new byte[4];
                Array.Copy(heads2,1, lens,0, lens.Length);
                int len = HiPiaoProtocol.GetDataPackageLen(lens);
                len -= 22;
            #if DEBUG
                byte[] dataLength = BitConverter.GetBytes(1484);
                WriteLog("changdu:" + GetHexOutput(dataLength),txt);

                WriteLog("Hex输出为:" + GetHexOutput(heads1),txt);

                WriteLog("获取报文包头并解析的长度为" + len ,txt);

                WriteLog("Hex输出为:" + GetHexOutput(heads2),txt);

            #endif
                /*
                byte[] allpackage = new byte[len];
                while (beginAccept)
                {

                    acceptByte=c.Receive(allpackage);
            #if DEBUG
                    WriteLog("尝试接收" + len.ToString()+ "字节,实际接收结果为:" + acceptByte.ToString(), txt);
            #endif
                    if (acceptByte>0)
                    {

                        break;
                    }

                }
                 */
                byte[] allpackage = new byte[len];
                byte[] bufferTmp=new byte[1024];
                int needAcceptLen = len<1024?len:1024;
                int acceptLen = 0;
               // bool needAccept=true;
                while (needAcceptLen>0)
                {

                    acceptByte = c.Receive(allpackage,acceptLen,needAcceptLen,SocketFlags.None);
            #if DEBUG
                    WriteLog("尝试接收" + needAcceptLen.ToString() + "字节,实际接收结果为:" + acceptByte.ToString(), txt);
            #endif
                    acceptLen += acceptByte;
                    if (acceptLen < len)
                    {
                        needAcceptLen = len - acceptLen < 1024 ? len - acceptLen : 1024;
                    }
                    else
                    {
                        needAcceptLen = 0;
                        break;
                    }

                }
               // acceptByte = c.Receive(allpackage);
            #if DEBUG
             //   WriteLog("尝试接收2字节,实际接收结果为:" + acceptByte.ToString(), txt);
            #endif
            #if DEBUG

                WriteLog("开始断开服务器连接...", txt);
            #endif
                c.Close();
            #if DEBUG
                WriteLog("完成断开服务器连接", txt);
            #endif
               // List<TicketPrintObject> tickets = new List<TicketPrintObject>();
                ArrayList tickets = new ArrayList();

                string tmpstr = Encoding.GetEncoding("GBK").GetString(allpackage, 0, len);
            #if DEBUG
                if (tmpstr.StartsWith("取票失败:"))
                {
                    WriteLog("最终取票结果的字符串为:"+tmpstr, txt);
                }
                WriteAllString(sbTmp.ToString());
                sbTmp = new StringBuilder();
               // string tmpstr7ttt = ReadAllString();

            #endif
                if (tmpstr.StartsWith("取票失败:"))
                {
                    TicketPrintObject tmpTicket1 = new TicketPrintObject();
                    tmpTicket1.IsPrinted = true;
                    tickets.Add(tmpTicket1);
                    return tickets;

                }
                string[] tmpstr1 = tmpstr.Split('\r');
                string[] tmpstr2 = tmpstr1[1].Split('\n');
                GetTicketPrintObject[] ticketsObjects=new GetTicketPrintObject[tmpstr2.Length];
                GetTicketPrintObject tmpTicket = null;
                for (int i = 0; i < tmpstr2.Length; i++)
                {
                    string[] tmpstr3 = tmpstr2[i].Split('\t');
            #if DEBUG
                    if (tmpstr3.Length == 7)
                    {
                        WriteLog("票据唯一标识:" + tmpstr3[0], txt);
                        WriteLog("正副券标识:" + tmpstr3[1], txt);
                        WriteLog("打印X坐标:" + tmpstr3[2], txt);
                        WriteLog("打印Y坐标:" + tmpstr3[3], txt);
                        WriteLog("字体大小:" + tmpstr3[4], txt);
                        WriteLog("是否加粗:" + tmpstr3[5], txt);
                        WriteLog("打印项内容:" + tmpstr3[6], txt);
                    }

            #endif
                    if (tmpstr3.Length != 7)
                    {
                        break;
                    }
                    else
                    {
                        tmpTicket = new GetTicketPrintObject();
                        tmpTicket.Id = tmpstr3[0];
                        tmpTicket.Id2 = tmpstr3[1];
                        tmpTicket.X = Convert.ToInt32(tmpstr3[2]);
                        tmpTicket.Y = Convert.ToInt32(tmpstr3[3]);
                        tmpTicket.FontWeight = Convert.ToInt32(tmpstr3[4]);
                        tmpTicket.IsBold = tmpstr3[5] == "1";
                        tmpTicket.Content=tmpstr3[6];
                        ticketsObjects[i] = tmpTicket;
                    }

                }
            #if DEBUG
                WriteLog("从服务器接收内容长度为:" + allpackage + " 内容为:" + tmpstr,txt);
                WriteLog("Hex输出为:" + GetHexOutput(allpackage),txt);
            #endif
               // for()
                /*

                while (readTime<3)
                {
                   // bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
                    //c.Receive(

                    bytes = c.Receive(recvBytes);

                    byte[] data = new byte[bytes];
                    Array.Copy(recvBytes, data, data.Length);

                    recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
            #if DEBUG
                    Console.WriteLine("从服务器第"+readTime.ToString()+"次接收内容长度为:" + bytes + " 内容为:" + recvStr);
                    Console.WriteLine("Hex输出为:" + GetHexOutput(data));
            #endif
                    //    Console.WriteLine("发送取票获取结果内容为:{0}", recvStr);//显示服务器返回信息

                    readTime++;
                }
                 * * */

               // return recvStr;
                //int count = tmpstr.Split("出票时间".ToCharArray()).Length-1;

                string strReplaced = tmpstr.Replace("出票时间", "");

                int count= (tmpstr.Length - strReplaced.Length) / "出票时间".Length;

                TicketPrintObject ticketPrintObject = null;
                SellProductPrinter sellProduct = null;
                int startindex = 0;
                string tmpid1=string.Empty;
                int num = 16;
                int sellcount = 0;
                int ticketcount = 0;

                for (int i = 0; i < count; i++)
                {

                    //if (tmpstr2[startindex].IndexOf("出票时间")!=-1)
                    if (tmpid1.Length > 0 && ticketsObjects[startindex].Content.StartsWith("名称"))
                    {
                        //startindex +=sellcount*8;
                        sellProduct = new SellProductPrinter();

                        sellProduct.Id = ticketsObjects[startindex + 0].Id;
                        sellProduct.Id2 = ticketsObjects[startindex + 0].Id2;
                        sellProduct.ProductName = ticketsObjects[startindex + 0].Content.Substring(3);
                        sellProduct.Price = ticketsObjects[startindex + 1].Content.Substring(3);
                        sellProduct.PlayDate = ticketsObjects[startindex + 2].Content.Substring(4);

                        sellProduct.PlayTime = ticketsObjects[startindex + 3].Content.Substring(5);
                        sellProduct.Content = ticketsObjects[startindex + 4].Content.Substring(3);
                        sellProduct.Cinema = ticketsObjects[startindex + 5].Content;

                        sellProduct.HipiaoCard = ticketsObjects[startindex + 6].Content.Substring(4);
                        sellProduct.PrintTime = ticketsObjects[startindex + 7].Content.Substring(5);

                        tickets.Add(sellProduct);
                        sellcount++;
                        startindex += 8;
                        continue;
                    }
                    else
                    {
                        tmpid1 = ticketsObjects[startindex + 0].Id;
                       // startindex += ticketcount * 16;

                        ticketPrintObject = new TicketPrintObject();
                        ticketPrintObject.Cinema = ticketsObjects[startindex + 0].Content;
                        ticketPrintObject.UniqueId = tmpid1;
                        ticketPrintObject.IsPrinted = false;
                        ticketPrintObject.MovieName = ticketsObjects[startindex + 1].Content.Substring(3);
                        ticketPrintObject.TicketId = ticketsObjects[startindex + 2].Content.Substring(3);
                        // string ttt = ticketsObjects[startindex + 3].Content.Substring(4);

                        ticketPrintObject.Price = Convert.ToInt32(Convert.ToDouble(ticketsObjects[startindex + 3].Content.Substring(4)));

                        ticketPrintObject.PlayTime = ticketsObjects[startindex + 4].Content;

                        ticketPrintObject.RoomName = ticketsObjects[startindex + 6].Content.Substring(3);

                        ticketPrintObject.Seat = ticketsObjects[startindex + 7].Content.Substring(3);

                        ticketPrintObject.PlayDate = ticketsObjects[startindex + 8].Content.Substring(3);

                        if (ticketsObjects[startindex + 14].Content.StartsWith("出票时间"))
                        {
                            ticketPrintObject.PrintTime = ticketsObjects[startindex + 14].Content.Substring(5);
                        }
                        else if (ticketsObjects[startindex + 14].Content.StartsWith("手续费"))
                        {
                            ticketPrintObject.MiddleFee = ticketsObjects[startindex + 14].Content.Substring(5);
                        }

                        if (ticketsObjects[startindex + 15].Content.StartsWith("出票时间"))
                        {

                            ticketPrintObject.PrintTime = ticketsObjects[startindex + 15].Content.Substring(5);
                        }
                        else if (ticketsObjects[startindex + 15].Content.StartsWith("手续费"))
                        {
                            ticketPrintObject.MiddleFee = ticketsObjects[startindex + 15].Content.Substring(5);
                        }

                        ticketPrintObject.ChangCi = ticketsObjects[startindex + 13].Content;

                        ticketPrintObject.SeatId = string.Empty;

                        tickets.Add(ticketPrintObject);
                        ticketcount++;
                        startindex += 16;
                        continue;
                    }
                }
            #if DEBUG
                WriteLog("获取票的个数为:"+tickets.Count.ToString(), txt);
                WriteAllString(sbTmp.ToString());
            #endif

                return tickets;

            }

            catch (ArgumentNullException e)
            {

                WriteLog(string.Format("ArgumentNullException: {0}", e),txt);
                sbTmp.Append("\r\n");
                sbTmp.Append(e.ToString());
                WriteAllString(sbTmp.ToString());
                return null;

            }

            catch (SocketException e)
            {

                WriteLog(string.Format("SocketException: {0}", e),txt);
                sbTmp.Append("\r\n");
                sbTmp.Append(e.ToString());
                WriteAllString(sbTmp.ToString());
                throw e;
               // return null;

            }

            #if DEBUG
            WriteLog("客户端连接完成!",txt);
            WriteAllString(sbTmp.ToString());
            #endif
            return null;
        }