예제 #1
0
        public bool Send(byte[] data)
        {
            if (IsCanSend(data.Length))
            {
                if (data.Length <= PacketSize)
                {
                    dataToSend.Enqueue(data);
                }
                else
                {
                    int rPos = 0;
                    int step = PacketSize;
                    while (rPos < data.Length)
                    {
                        if (data.Length - rPos >= PacketSize)
                        {
                            step = PacketSize;
                        }
                        else
                        {
                            step = data.Length - rPos;
                        }

                        byte[] block = new byte[step];
                        for (int i = 0; i < step; i++)
                        {
                            block[i] = data[rPos + i];
                        }

                        rPos += step;
                        dataToSend.Enqueue(block);
                    }
                }

                PerformProtocol();

                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #2
0
 public void Send(byte[] data)
 {
     dataToSend.Enqueue(data);
 }