// чтение входящего сообщения public JsonPack GetMessage() { byte[] data = new byte[256]; // буфер для получаемых данных StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = Stream.Read(data, 0, data.Length); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); if (builder.ToString() == "") { continue; } }while (Stream.DataAvailable); JsonPack jsPack = new JsonPack(); if (jsPack.GetJson(builder.ToString())) { return(jsPack); } else { return(null); } }
public JsonPack ReceiveOneMessage() { try { byte[] data = new byte[64]; // буфер для получаемых данных StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = stream.Read(data, 0, data.Length); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (stream.DataAvailable); JsonPack json = new JsonPack(); if (json.GetJson(builder.ToString())) { return(json); } else { return(null); } } catch { Debug.WriteLine("Подключение прервано!"); //соединение было прервано Disconnect(); return(null); } }
public ResultCode TryLogin() { JsonPack jsPack = GetMessage(); // if (jsPack == null) return(ResultCode.Error); /* switch (jsPack.header.metod) * { * case Metods.Regisration: * List<User> users = db.Users.ToList(); * User user = users.Find(x => x.Login == jsPack.header.login); * if (user!= null) * return StateUser.LoginExist; * else * { * user = new User() * { * Login = jsPack.header.login, * Password=jsPack.header.password * //Name= * } * * return StateUser.Login; * } * case Metods.Login: * users = db.Users.ToList(); * user = users.Find(x => x.Login == jsPack.header.login); * //if (user!=null) * return 0; * default: * return 0; * }*/ }
public void AddConnection(ClientObject clientObject) { LicenceKey key; JsonPack jsOut; JsonPack jsIn = clientObject.GetMessage(); switch (jsIn.metod) { case "JSDRegister": JSDRegister reg = (JSDRegister)jsIn.data; key = db.LicenceKeys.Where(x => x.Key == reg.key).FirstOrDefault(); if (key != null && (key.UnicId == null || key.UnicId == "")) { key.UnicId = reg.Id_1 + reg.Id_2; } db.LicenceKeys.Attach(key); db.Entry(db.LicenceKeys.Find(key.LicenceKeyId)).State = EntityState.Modified; db.SaveChanges(); clientObject.user = db.Users.Where(x => x.UserId == key.UserId).FirstOrDefault(); jsOut = new JsonPack(); jsOut.data = new JSDRegisterS() { result = true }; clients.Add(clientObject); clientObject.SendMessage(jsOut); break; case "JSDLogin": JSDLogin login = (JSDLogin)jsIn.data; key = db.LicenceKeys.Where(x => x.Key == login.LicenseKey && x.UnicId == login.UniqPC).FirstOrDefault(); jsOut = new JsonPack() { data = new JSDLoginS() { result = false } }; if (key != null) { clientObject.user = db.Users.Where(x => x.UserId == key.UserId).FirstOrDefault(); ((JSDLoginS)(jsOut.data)).result = true; } ; clients.Add(clientObject); clientObject.SendMessage(jsOut); break; default: break; } /* * if (clientObject.TryLogin() == ResultCode.Login) * { * Thread clientThread = new Thread(new ThreadStart(clientObject.Process)); * clientThread.Start(); * }*/ }
/// <summary> /// To download the task log with a string format /// </summary> /// <param name="idleParam"> /// not use parameters, set it to null /// </param> public override void Request(object idleParam) { string jsonStr = JsonPack <DownloadLog> .SerializeObject(this); string result = AgentSetting.CallerFactory.CreateCaller() .PostCommand(AgentSetting.AddressUrl + AgentSetting.CommandLogDownload, jsonStr); this.SetTheCallResult(result); }
/// <summary> /// To lookup the task list with a xml string /// </summary> /// <param name="idleParam"> /// No use parameter, set it to null /// </param> public override void Request(object idleParam) { string jsonStr = JsonPack <BusinessInfo> .SerializeObject(this.BusinessCredentials); string result = AgentSetting.CallerFactory.CreateCaller() .PostCommand(AgentSetting.AddressUrl + AgentSetting.CommandTaskGet, jsonStr); this.SetTheCallResult(result); }
private void OnApplicationQuit() { for (var i = 0; i < m_Slot.Length; i++) { JsonPack data = new JsonPack(); data.item = m_Slot[i].m_info; data.none = m_Slot[i].m_none; m_Json.Add(data); } string json = JsonHelper.ToJson(m_Json.ToArray()); JsonIOStream.Json_Save(json); }
/// <summary> /// получение сообщений /// </summary> void ReceiveMessage() { while (true) { try { byte[] data = new byte[64]; // буфер для получаемых данных StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = stream.Read(data, 0, data.Length); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (stream.DataAvailable); if (builder.ToString() == "") { countEmpty++; if (countEmpty >= 50) { continue; } } else { countEmpty = 0; } JsonPack pack = new JsonPack(); if (pack.GetJson(builder.ToString())) { ProcessQuery(pack); } else { ProcessQuery(null); } } catch { Debug.WriteLine("Подключение прервано!"); //соединение было прервано Disconnect(); // Connect(host, port, idClient, login, password); } } }
public bool SendToSupport(string subject, string body, Image screen) { JsonPack jp = new JsonPack(); ImageConverter converter = new ImageConverter(); var bytes = (byte[])converter.ConvertTo(screen, typeof(byte[])); List <byte[]> list = new List <byte[]>(); list.Add(bytes); string str = jp.ToString(); //var ms = new MemoryStream(jp.GetJson(str).images[0]); var ms = new MemoryStream(); Image image = Image.FromStream(ms); img_Delete = image; //throw new NotImplementedException(); return(false); }
public ResultCode Register(string serialKey) { if (!client.Connected) { return(ResultCode.NoConnection); } else { JsonPack json = new JsonPack(); json.data = new JSDRegister() { key = serialKey, Id_1 = BaseBoard.GetSerialNumber(), Id_2 = Bios.GetSerialNumber(), computerName = OperatingSystemScan.GetNamePC() }; SendMessage(json.ToString()); JsonPack receive = ReceiveOneMessage(); if (!receive.Accept || receive.data.GetType().Name != "JSDRegisterS") { // if (receive.Errors == "NotValidKey") // return ResultCode.NotValidKey; // else return(ResultCode.Error); } else if (!((JSDRegisterS)receive.data).result) { return(ResultCode.Error); } else { // запускаем новый поток для получения данных receiveThread = new Thread(new ThreadStart(ReceiveMessage)); receiveThread.Start(); //старт потока return(ResultCode.OK); } } }
private static void prog1() { //var handle = GetConsoleWindow(); // Hide //ShowWindow(handle, SW_HIDE); // сохраним на диск var(orders, store) = Data.autoGeneratedData(30, 60, 5, false, true); var data = JsonPack.packGeneratedData(orders, store); // прочитали Json dynamic dd = JObject.Parse(File.ReadAllText(data)); int[][] str = ((JArray)dd.store).Select(jv => jv.Select(j => (int)j).ToArray()).ToArray(); // возможно вставка нумерации строк int[][] or = ((JArray)dd.order).Select(jv => jv.Select(j => (int)j).ToArray()).ToArray(); int x = 1; or = or.Select(el => { var el1 = el.ToList(); el1.Add(x++); return(el1.ToArray()); }).ToArray(); //int[][] or = JArray.Parse(File.ReadAllText(x)).Select(jv => jv.Select(j => (int)j).ToArray()).ToArray(); var newData = File.ReadAllText(JsonPack.packGeneratedData(or, str)); Console.WriteLine(newData); prog3(newData); // проводим расчет var raspil = new RaspilOperator(or, str); var x1 = raspil.Algoritm2(); var xx = raspil.ordersRemain; string x11 = JsonConvert.SerializeObject(x1); //string xx11 = JsonConvert.SerializeObject(xx); File.WriteAllText(Path.Combine("temp", Directory.GetCurrentDirectory(), "result.json"), x11); //File.WriteAllText(Path.Combine("temp", Directory.GetCurrentDirectory(), "ostatok.json"), xx11); }
public bool Login() { if (!client.Connected) { return(false); } else { string LicenceKey = GetLicenseKey(); JsonPack pack = new JsonPack(); JSDLogin data = new JSDLogin() { LicenseKey = LicenceKey, UniqPC = pack.GetUniqPC() }; pack.data = data; pack.metod = data.GetType().Name; SendMessage(pack.ToString()); JsonPack receive = ReceiveOneMessage(); if (!receive.Accept) { return(false); } else { // запускаем новый поток для получения данных receiveThread = new Thread(new ThreadStart(ReceiveMessage)); receiveThread.Start(); //старт потока return(true); } } //return false; }
private void ProcessQuery(JsonPack query) { if (query == null) { return; } switch (query.metod) { case "m1": break; case "m2": break; case "m3": break; default: break; } }
public void SendMessage(JsonPack jsOut) { byte[] data = Encoding.Unicode.GetBytes(jsOut.ToString()); Stream.Write(data, 0, data.Length); }