public static ClientData GetClientData(byte[] data) { ClientData temp; try { temp = JsonConvert.DeserializeObject <ClassStatic.ClientData>(ClassStatic.GetString(data)); } catch { temp = null; } return(temp); }
public static UserLoginSuccess GetLoginSuccessData(byte[] data) { UserLoginSuccess temp; try { temp = JsonConvert.DeserializeObject <ClassStatic.UserLoginSuccess>(ClassStatic.GetString(data)); } catch { temp = null; } return(temp); }
public static ListDrive GetListDrive(byte[] data) { ListDrive temp; try { temp = JsonConvert.DeserializeObject <ClassStatic.ListDrive>(ClassStatic.GetString(data)); } catch { temp = null; } return(temp); }
public static ListDriveData GetListDriveData(byte[] data) { ListDriveData temp; try { temp = JsonConvert.DeserializeObject <ClassStatic.ListDriveData>(ClassStatic.GetString(data)); } catch { temp = new ListDriveData("false", new List <ListDrive>()); } return(temp); }
/// <summary> /// 有设备改变运行状态 /// </summary> /// <param name="state"></param> /// <param name="data"></param> public void OnDeviceChangeStateHandler(int state, byte[] data) { if (state == 203) { string token = ClassStatic.GetString(data); string stateDrive = token.Substring(token.Length - 2, 2); token = token.Substring(0, token.Length - 2); this.Invoke(new Action(() => { if (controlDeviceOnline.ContainsKey(token)) { ControlDevice temp = controlDeviceOnline[token]; temp.Status = (stateDrive == "在线" ? 0 : 1); } })); } }
/// <summary> /// 将byte[]转为Result /// </summary> /// <param name="data"></param> /// <returns></returns> public static Result GetResult(byte[] data) { Result temp; try { temp = JsonConvert.DeserializeObject <ClassStatic.Result>(ClassStatic.GetString(data)); } catch { temp = new Result(); temp.ret = "false"; temp.msg = "与服务器链接失败"; } return(temp); }
private void SettingChange_Callback(bool state, byte[] data) { System.Diagnostics.Debug.WriteLine(ClassStatic.GetString(data)); }
/// <summary> /// 接收服务端信息 /// </summary> private void SocketReceive() { while (socketConnect && socketClient != null && socketClient.Connected) { try { byte[] temp = new byte[1024]; byte[] data = new byte[1024]; List <byte> byteSource = new List <byte>(); int length = socketClient.Receive(data, data.Length, 0); byteSource.AddRange(data.Take(length)); while (socketClient.Available > 0) { Thread.Sleep(100); int len = socketClient.Receive(temp, temp.Length, 0); if (len > 0) { byteSource.AddRange(temp.Take(len)); } } data = byteSource.ToArray(); length = data.Length; if (length > 3) { // 获取标识码 int state; if (Int32.TryParse(Encoding.UTF8.GetString(data.Take(3).ToArray()), out state)) { // 是否使用回调函数 uint isCallback = data[3]; // 截取数据 data = data.Skip(4).ToArray(); if (isCallback == 1) { string token = ClassStatic.GetString(data.Take(32).ToArray()); if (sendCallbackList.ContainsKey(token)) { data = data.Skip(32).ToArray(); sendCallbackList[token].action(true, data); sendCallbackList.Remove(token); } // 丢弃错误回调ID的数据包 } else { // 执行客户端信息响应事件 OnServerReceiveHandler?.Invoke(state, data); } } // 丢弃协议不合法的数据包 } // 丢弃长度不合法的数据包 } catch (SocketException ex) { // 断开连接 socketConnect = false; // 断开与服务器的连接 OnServerCloseHandler?.Invoke(); return; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); // 其他错误 } } }
/// <summary> /// 远程发送剪贴板中含有文字 /// </summary> /// <param name="state"></param> /// <param name="data"></param> public void OnOtherDriveClipboardDataTextHandler(int state, byte[] data) { if (state == 221) { this.Invoke(new Action(() => { ClassStatic.isRemoteClipboardData = 2; Clipboard.SetText(ClassStatic.GetString(data)); })); } if (state == 222) { this.Invoke(new Action(() => { Bitmap bmp = new Bitmap(Clipboard.GetImage()); string path = ClassStatic.GetConfigSoftware("cachePath"); if (Directory.Exists(path) == false) { path = System.Environment.CurrentDirectory + "\\cache"; Directory.CreateDirectory(path); ClassStatic.SetConfigSoftware("cachePath", path); } path += "\\img"; if (Directory.Exists(path) == false) { Directory.CreateDirectory(path); } path += "\\" + DateTime.Now.ToString("yyyy-MM-dd.HHmmss") + ".png"; bmp.Save(path, Clipboard.GetImage().RawFormat); StringCollection file = new StringCollection(); file.Add(path); ClassStatic.isRemoteClipboardData = 2; Clipboard.SetFileDropList(file); bmp.Dispose(); })); } if (state == 223) { string fileName = ""; try { int lenth = Convert.ToInt32(ClassStatic.GetString(data.Skip(1).Take(data[0]).ToArray())); data = data.Skip(data[0] + 1).ToArray(); fileName = ClassStatic.GetString(data.Take(lenth).ToArray()); data = data.Skip(lenth).ToArray(); } catch { } if (fileName != "") { this.Invoke(new Action(() => { string path = ClassStatic.GetConfigSoftware("cachePath"); if (Directory.Exists(path) == false) { path = System.Environment.CurrentDirectory + "\\cache"; Directory.CreateDirectory(path); ClassStatic.SetConfigSoftware("cachePath", path); } path += "\\" + fileName; System.Diagnostics.Debug.WriteLine(path); FileStream fs = new FileStream(path, FileMode.Create); System.Diagnostics.Debug.WriteLine(data.Length); fs.Write(data, 0, data.Length); fs.Close(); StringCollection file = new StringCollection(); file.Add(path); ClassStatic.isRemoteClipboardData = 2; Clipboard.SetFileDropList(file); System.Diagnostics.Debug.WriteLine(Clipboard.GetFileDropList().Count); })); } } if (state == 238) { this.Invoke(new Action(() => { FormMain.formMain.deviceList.InitializeDeviceList(); })); } }