コード例 #1
0
        //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);
        }
コード例 #2
0
ファイル: FormServer.cs プロジェクト: blian3/progetto_pds
        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();
                }
            });
        }