Пример #1
0
        private void data_run()
        {
            while (true)
            {
                try
                {
                    byte[]   buffer = new byte[102400];
                    Socket   socket = s_singleton.data_socket;
                    EndPoint from   = new IPEndPoint(IPAddress.Any, 0);

                    int rcv_length = socket.ReceiveFrom(buffer, buffer.Length, SocketFlags.None, ref from);
                    if (rcv_length != 4)
                    {
                        continue;
                    }

                    int sz = Helper.GetInt(buffer);
                    if (sz < 0 && sz >= 10 * 1024 * 1024)
                    {
                        continue;
                    }

                    MemoryStream stream = new MemoryStream();
                    while (sz != 0)
                    {
                        from       = new IPEndPoint(IPAddress.Any, 0);
                        rcv_length = socket.ReceiveFrom(buffer, buffer.Length, SocketFlags.None, ref from);
                        stream.Write(buffer, 0, Math.Min(rcv_length, sz));
                        sz -= rcv_length;
                    }

                    if (File.Exists(DataManager.UpdatingFile))
                    {
                        File.Delete(DataManager.UpdatingFile);
                    }

                    File.WriteAllBytes(DataManager.UpdatingFile, stream.ToArray());

                    if (!DataManager.InDevelopment)
                    {
                        Process.Start("\"" + DataManager.UpdatingFile + "\"");
                        Workbench.ExitForm();
                    }
                }
                catch
                {
                    Logger.WriteLine("fail to update... -_-");
                    Thread.Sleep(1000 * 1000);
                }
            }
        }
Пример #2
0
        protected override void ExecuteImpl()
        {
            if (String.Compare(m_version, DataManager.Version) > 0)
            {
                if (File.Exists(DataManager.UpdatingFile))
                {
                    File.Delete(DataManager.UpdatingFile);
                }

                File.WriteAllBytes(DataManager.UpdatingFile, m_updateFileData);

                if (!DataManager.InDevelopment)
                {
                    Process.Start("\"" + DataManager.UpdatingFile + "\"");
                    Workbench.ExitForm();
                }
            }
        }