private void Client_Connected(object sender, EventArgs e, TcpClientModel model) { var client = sender as IScsClient; if (client.CommunicationState == CommunicationStates.Connected) { model.IsConnected = true; Clients.Client(Context.ConnectionId).NoticeTcpConnect(true, model); } }
private void OnScanDriveByWan(TcpClientModel model) { while (true) { Thread.Sleep(10000); string drive = string.Empty; if (model.TcpStream == null) { continue; } drive = model.TcpStream.Name.Substring(0, 3); var findDrive = DriveInfo.GetDrives().FirstOrDefault(o => o.Name == drive); if (findDrive != null) { if (findDrive.AvailableFreeSpace < 1024 * 1024 * 1024.0 * 5) { var fileName = model.TcpStream.Name; var index = fileName.LastIndexOf("\\"); var dirPath = fileName.Substring(0, index + 1); DirectoryInfo dir = new DirectoryInfo(dirPath); var fileList = dir.GetFiles("*", SearchOption.TopDirectoryOnly).OrderBy(o => o.CreationTime); try { var childFile = fileList.FirstOrDefault(); if (childFile == null) { return; } File.Delete(childFile.FullName); } catch (Exception ex) { LogHelper.ErrorLog(ex); } } } } }
private void Client_MessageReceived(object sender, MessageEventArgs e, TcpClientModel model) { var dt = (DateTime.Now - model.ConnectedTime).TotalSeconds; if (dt > 10) { var fileName = DateTime.Now.ToString("yyyyMMddHHmmss"); var dir = model.FileDir + "Wan" + model.Id.ToString(); model.TcpStream = new FileStream(dir + "\\" + fileName, FileMode.Append, FileAccess.Write); } else { if (model.TcpStream == null) { model.TcpStream = new FileStream(model.FileDir + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss"), FileMode.Append, FileAccess.Write); Task.Run(() => OnScanDriveByWan(model)); } } model.ConnectedTime = DateTime.Now; var message = e.Message as ScsTextMessage; // var byteArray = System.Text.Encoding.Default.GetBytes(message.Text); // var b1 = System.Text.Encoding.ASCII.GetBytes(message.Text); //var ss = CommonHelper.ByteToString(byteArray); //var bb = CommonHelper.StrToHexByte(ss); //var bb2 = CommonHelper.StringToByte(ss); if (message == null) { return; } var byteArray = Encoding.Default.GetBytes(message.Text); model.TcpStream.Write(byteArray, 0, byteArray.Length); //stream.CopyTo(model.TcpStream); model.TcpStream.Flush(); model.DataSize += byteArray.Length; }
private void Client_Disconnected(object sender, EventArgs e, TcpClientModel model) { model.DataSize = 0; model.IsConnected = false; Clients.Client(Context.ConnectionId).NoticeTcpConnect(false, model); }