internal NetPeer(NetManager peerListener, NetEndPoint remoteEndPoint, long connectId) { _peerListener = peerListener; _remoteEndPoint = remoteEndPoint; _avgRtt = 0; _rtt = 0; _pingSendTimer = 0; _reliableOrderedChannel = new ReliableChannel(this, true, _windowSize); _reliableUnorderedChannel = new ReliableChannel(this, false, _windowSize); _sequencedChannel = new SequencedChannel(this); _simpleChannel = new SimpleChannel(this); _packetPool = new Stack <NetPacket>(); _holdedFragments = new Dictionary <ushort, IncomingFragments>(); _mergeData.Init(PacketProperty.Merged, NetConstants.PossibleMtu[NetConstants.PossibleMtu.Length - 1]); //if ID != 0 then we already connected _connectAttempts = 0; if (connectId == 0) { _connectId = HiResDateTime.UtcNowTicks; SendConnectRequest(); } else { _connectId = connectId; _connectionState = ConnectionState.Connected; SendConnectAccept(); } NetUtils.DebugWrite(ConsoleColor.Cyan, "[CC] ConnectId: {0}", _connectId); }
/// <summary> /// Send message without connection /// </summary> /// <param name="message">Raw data</param> /// <param name="start">data start</param> /// <param name="length">data length</param> /// <param name="remoteEndPoint">Packet destination</param> /// <returns>Operation result</returns> public bool SendUnconnectedMessage(byte[] message, int start, int length, NetEndPoint remoteEndPoint) { if (!_running) { return(false); } NetPacket p = new NetPacket(); p.Init(PacketProperty.UnconnectedMessage, length); p.PutData(message, start, length); return(SendRaw(p.RawData, 0, p.RawData.Length, remoteEndPoint)); }
internal NetPeer(NetBase peerListener, NetEndPoint remoteEndPoint) { _peerListener = peerListener; _id = remoteEndPoint.GetId(); _remoteEndPoint = remoteEndPoint; _avgRtt = 0; _rtt = 0; _pingSendTimer = 0; _reliableOrderedChannel = new ReliableChannel(this, true, _windowSize); _reliableUnorderedChannel = new ReliableChannel(this, false, _windowSize); _sequencedChannel = new SequencedChannel(this); _simpleChannel = new SimpleChannel(this); _packetPool = new Stack <NetPacket>(); _holdedFragments = new Dictionary <ushort, IncomingFragments>(); _mergeData.Init(PacketProperty.Merged, NetConstants.PossibleMtu[NetConstants.PossibleMtu.Length - 1]); }