SendRaw() private method

private SendRaw ( byte message, NetEndPoint remoteEndPoint ) : bool
message byte
remoteEndPoint NetEndPoint
return bool
示例#1
0
        public void NatIntroduce(
            NetEndPoint hostInternal,
            NetEndPoint hostExternal,
            NetEndPoint clientInternal,
            NetEndPoint clientExternal,
            string additionalInfo)
        {
            NetDataWriter dw = new NetDataWriter();

            //First packet (server)
            //send to client
            dw.Put(ClientByte);
            dw.Put(hostInternal);
            dw.Put(hostExternal);
            dw.Put(additionalInfo, MaxTokenLength);

            _netBase.SendRaw(NetPacket.CreateRawPacket(PacketProperty.NatIntroduction, dw), clientExternal);

            //Second packet (client)
            //send to server
            dw.Reset();
            dw.Put(HostByte);
            dw.Put(clientInternal);
            dw.Put(clientExternal);
            dw.Put(additionalInfo, MaxTokenLength);

            _netBase.SendRaw(NetPacket.CreateRawPacket(PacketProperty.NatIntroduction, dw), hostExternal);
        }
示例#2
0
        //from user thread, our thread, or recv?
        private void SendPacket(NetPacket packet)
        {
            switch (packet.Property)
            {
            case PacketProperty.Reliable:
                DebugWrite("[RS]Packet reliable");
                _reliableUnorderedChannel.AddToQueue(packet);
                break;

            case PacketProperty.Sequenced:
                DebugWrite("[RS]Packet sequenced");
                _sequencedChannel.AddToQueue(packet);
                break;

            case PacketProperty.ReliableOrdered:
                DebugWrite("[RS]Packet reliable ordered");
                _reliableOrderedChannel.AddToQueue(packet);
                break;

            case PacketProperty.Unreliable:
                DebugWrite("[RS]Packet simple");
                _simpleChannel.AddToQueue(packet);
                break;

            case PacketProperty.MtuCheck:
                //Must check result for MTU fix
                if (!_peerListener.SendRaw(packet.RawData, 0, packet.RawData.Length, _remoteEndPoint))
                {
                    _finishMtu = true;
                }
                Recycle(packet);
                break;

            case PacketProperty.AckReliable:
            case PacketProperty.AckReliableOrdered:
            case PacketProperty.Ping:
            case PacketProperty.Pong:
            case PacketProperty.Disconnect:
            case PacketProperty.MtuOk:
                SendRawData(packet.RawData);
                Recycle(packet);
                break;

            default:
                throw new Exception("Unknown packet property: " + packet.Property);
            }
        }
示例#3
0
 internal bool SendRawData(byte[] data)
 {
     return(_peerListener.SendRaw(data, 0, data.Length, _remoteEndPoint));
 }