Exemple #1
0
        internal void ReceiveDataSyn(DataSyn syn)
        {
            this.recv_queue.Write(syn);

            var data = this.recv_queue.Dequeue();

            this.OnData(Reactor.Buffer.Create(data));

            var ack = new DataAck(this.recv_queue.SequenceNumber, this.recv_queue.WindowSize);

            this.socket.Send(this.endpoint, ack.Serialize());
        }
Exemple #2
0
        public void Write(DataSyn payload)
        {
            if (this.WindowSize > 0)
            {
                if (payload.SequenceNumber >= this.SequenceNumber)
                {
                    foreach (var _packet in this.packets)
                    {
                        if (_packet.SequenceNumber == payload.SequenceNumber)
                        {
                            return;
                        }
                    }

                    this.packets.Add(payload);

                    this.packets.Sort();
                }
            }
        }
Exemple #3
0
        internal void ReceiveDataSyn(DataSyn      syn)
        {
            this.recv_queue.Write(syn);

            var data = this.recv_queue.Dequeue();

            this.OnData(Reactor.Buffer.Create(data));

            var ack = new DataAck(this.recv_queue.SequenceNumber, this.recv_queue.WindowSize);

            this.socket.Send(this.endpoint, ack.Serialize());
        }
Exemple #4
0
        public void Write(DataSyn payload)
        {
            if (this.WindowSize > 0)
            {
                if (payload.SequenceNumber >= this.SequenceNumber)
                {
                    foreach (var _packet in this.packets)
                    {
                        if (_packet.SequenceNumber == payload.SequenceNumber)
                        {
                            return;
                        }
                    }

                    this.packets.Add(payload);

                    this.packets.Sort();
                }
            }
        }