//private List<MacroEvent> recEventsList() //{ // int recvBytes = 0; // int totRecvBytes = 0; // int dataSize = recInt(); // //Console.WriteLine("Received data size {0}", dataSize); // if (dataSize < 0) // { // if (firstEventReceveid) // OnClientSendEventsEnded(EventArgs.Empty); // firstEventReceveid = false; // Console.WriteLine("Received DataSize {0}", dataSize); // return null; // } // if (!firstEventReceveid) // { // OnClientSendEventsStarted(EventArgs.Empty); // firstEventReceveid = true; // } // buf_eventsList = new byte[dataSize]; // while (totRecvBytes < dataSize) // { // recvBytes = handledReceive(buf_eventsList, totRecvBytes, dataSize - totRecvBytes); // totRecvBytes += recvBytes; // } // List<MacroEvent> list; // using (MemoryStream ms = new MemoryStream(buf_eventsList)) // list = bf.Deserialize(ms) as List<MacroEvent>; // return list; //} private void recEventsListLoop() { int recvBytes, totRecvBytes, dataSize; dataSize = recInt(); //Console.WriteLine("First DataSize: {0}", dataSize); if (dataSize < 0) { throw new ClientStoppedSendingEventsException(); } //do //{ //Console.WriteLine("DataSize: {0}", dataSize); buf_eventsList = new byte[dataSize]; recvBytes = 0; totRecvBytes = 0; while (totRecvBytes < dataSize) { recvBytes = handledReceive(buf_eventsList, totRecvBytes, dataSize - totRecvBytes); totRecvBytes += recvBytes; } using (MemoryStream ms = new MemoryStream(buf_eventsList)) EventsBuffer.AddEvents((List <MacroEvent>)bf.Deserialize(ms)); //} while ((dataSize = recInt()) >= 0); }
private void OnReceivingEvents(object sender, EventArgs e) { serverKeyboardHook.Enabled = true; serverMouseHook.Enabled = true; status = ServerStatus.ClientActive; RefreshStatusLabel(); btnStop.Invoke(new MethodInvoker(() => { this.btnStop.Enabled = false; })); /* qua o quando il client si collega? */ // consumatore: riproduce gli eventi //Task.Factory.StartNew(() => //{ // while (connected) // EventsBuffer.ConsumeEvents(); //}); Task.Factory.StartNew(() => { while (status == ServerStatus.ClientActive) { EventsBuffer.ConsumeEvents(); } }); }