Пример #1
0
            /*
             * public void SendCommand(Byte commandID, IReflector reflector, Object command, ByteBuffer sendBuffer)
             * {
             *  Tmp.SerializeCommand(
             *  Byte[] packet = Tmp.CreateCommandPacket(commandID, reflector, command, 0);
             *  dataSender.HandleData(packet, 0, packet.Length);
             * }
             */
            /*
             * void HandleHeartbeat()
             * {
             *  Console.WriteLine("{0} [{1}] [TmpControl] Got heartbeat", DateTime.Now, remoteEndPoint);
             * }
             */
            public void SocketReceiverHandler(ref SelectControl selectControl, Socket socket, Buf safeBuffer)
            {
                Int32 bytesRead = socket.Receive(safeBuffer.array);

                if (bytesRead <= 0)
                {
                    selectControl.DisposeAndRemoveReceiveSocket(socket);
                    Dispose();
                    return;
                }

                //Console.WriteLine("{0} [{1}] [Debug] Got {2} Bytes: {3}", DateTime.Now, remoteEndPoint, bytesRead, safeBuffer.array.ToHexString(0, bytesRead));

                if (receiveDataFilter == null)
                {
                    frameProtocolReceiveHandler.HandleData(safeBuffer.array, 0, (UInt32)bytesRead);
                }
                else
                {
                    receiveDataFilter.FilterTo(frameProtocolReceiveHandler.HandleData,
                                               safeBuffer.array, 0, (UInt32)bytesRead);
                }
            }
Пример #2
0
 public void HandleData(Byte[] data, UInt32 offset, UInt32 length)
 {
     filter.FilterTo(handler, data, offset, length);
 }