void HandleMicrophoneAudio(byte[] _bAudioData) { if (EventRecievedMicrophoneAudio != null) { CNetworkStream cAudioDataStream = new CNetworkStream(_bAudioData); cAudioDataStream.IgnoreBytes(1); EventRecievedMicrophoneAudio(cAudioDataStream); } }
protected void HandlePlayerMicrophoneAudio(RakNet.RakNetGUID _cPlayerGuid, byte[] _baData) { if (EventRecievedPlayerMicrophoneAudio != null) { CNetworkStream cAudioDataStream = new CNetworkStream(_baData); cAudioDataStream.IgnoreBytes(1); EventRecievedPlayerMicrophoneAudio(FindNetworkPlayer(_cPlayerGuid.g), cAudioDataStream); } }
void HandleNetworkViewPacket(byte[] _baData) { if (IsConnected) { // Create stream with data CNetworkStream cStream = new CNetworkStream(_baData); // Ignore ID_TIME cStream.IgnoreBytes(1); // Retrieve latency ulong ulLatency = RakNet.RakNet.GetTime() - cStream.ReadULong(); // Ignore EPacketId.NetworkView identifier cStream.IgnoreBytes(1); // Process packet data CNetworkView.ProcessInboundStream(ulLatency, cStream); // Logger.WriteError("Processed Inbound Data of size ({0})", cStream.GetSize()); } }
public static void ProcessPlayerSerializedData(CNetworkPlayer _cPlayer, byte[] _baData) { // Create packet stream CNetworkStream cStream = new CNetworkStream(_baData); // Ignore timestamp packet id cStream.IgnoreBytes(1); // Retrieve latency ulong ulLatency = RakNet.RakNet.GetTime() - cStream.ReadULong(); // Ignmore serialized data packet id cStream.IgnoreBytes(1); // Iterate through the packet data while (cStream.HasUnreadData && cStream.NumUnreadBits > 18) { // Extract the target identifier byte bTargetIdentifier = cStream.ReadByte(); // Extract the size of the data ushort usBitSize = cStream.ReadBits <ushort>(10); ushort usByteSize = (ushort)((float)usBitSize / 8.0f); // Extract the data byte[] baData = new byte[usByteSize]; cStream.BitStream.ReadBits(baData, usBitSize); // Create stream for the control CNetworkStream cTargetStream = new CNetworkStream(); cTargetStream.WriteBits(baData, usBitSize); // Have the target process its data s_mThrottledSerializeTargets[bTargetIdentifier].nUnserializeMethod(_cPlayer, cTargetStream); } }
public static void ProcessPlayerSerializedData(CNetworkPlayer _cPlayer, byte[] _baData) { // Create packet stream CNetworkStream cStream = new CNetworkStream(_baData); // Ignore timestamp packet id cStream.IgnoreBytes(1); // Retrieve latency ulong ulLatency = RakNet.RakNet.GetTime() - cStream.ReadULong(); // Ignmore serialized data packet id cStream.IgnoreBytes(1); // Iterate through the packet data while (cStream.HasUnreadData && cStream.NumUnreadBits > 18) { // Extract the target identifier byte bTargetIdentifier = cStream.ReadByte(); // Extract the size of the data ushort usBitSize = cStream.ReadBits<ushort>(10); ushort usByteSize = (ushort)((float)usBitSize / 8.0f); // Extract the data byte[] baData = new byte[usByteSize]; cStream.BitStream.ReadBits(baData, usBitSize); // Create stream for the control CNetworkStream cTargetStream = new CNetworkStream(); cTargetStream.WriteBits(baData, usBitSize); // Have the target process its data s_mThrottledSerializeTargets[bTargetIdentifier].nUnserializeMethod(_cPlayer, cTargetStream); } }
protected void HandleUnconnectPong(byte[] _baData, RakNet.SystemAddress _cServerSystemAddress, RakNet.RakNetGUID _cServerGuid) { // Create stream CNetworkStream cStream = new CNetworkStream(_baData); // Ignore message identifier cStream.IgnoreBytes(1); // Read time uint uiTime = cStream.ReadUInt(); // Read response data byte[] baOfflinePingResponse = cStream.ReadBytes(cStream.NumUnreadBytes); // Create server info TServer tLanServerInfo = new TServer(); tLanServerInfo.sIp = _cServerSystemAddress.ToString(); tLanServerInfo.usPort = _cServerSystemAddress.GetPort(); tLanServerInfo.uiLatency = RakNet.RakNet.GetTimeMS() - uiTime; tLanServerInfo.cGuid = new RakNet.RakNetGUID(_cServerGuid.g); // Convert response data to server info tLanServerInfo.tServerInfo = new CNetworkServer.TServerInfo(baOfflinePingResponse); uint uiLocalNumberOfAddresses = m_cRnPeer.GetNumberOfAddresses(); string sIpPrefix = _cServerSystemAddress.ToString().Substring(0, _cServerSystemAddress.ToString().IndexOf('.')); bool bIsLanServer = false; for (uint i = 0; i < uiLocalNumberOfAddresses; ++ i) { string sMyLanIp = m_cRnPeer.GetLocalIP(i); string sLanIpPrefix = sMyLanIp.Substring(0, sMyLanIp.IndexOf('.')); if (sLanIpPrefix == sIpPrefix) { bIsLanServer = true; break; } } if (!bIsLanServer) { m_aOnlineServers.Add(tLanServerInfo); } else { m_aLanServers.Add(tLanServerInfo); } //Logger.WriteError("Added server ({0}:({1}) lan ({2})", tLanServerInfo.sIp, tLanServerInfo.usPort, bIsLanServer); // Notify event observers if (EventFoundServer != null) { EventFoundServer(tLanServerInfo); } }
protected void HandleUnconnectPong(byte[] _baData, RakNet.SystemAddress _cServerSystemAddress, RakNet.RakNetGUID _cServerGuid) { // Create stream CNetworkStream cStream = new CNetworkStream(_baData); // Ignore message identifier cStream.IgnoreBytes(1); // Read time uint uiTime = cStream.ReadUInt(); // Read response data byte[] baOfflinePingResponse = cStream.ReadBytes(cStream.NumUnreadBytes); // Create server info TServer tLanServerInfo = new TServer(); tLanServerInfo.sIp = _cServerSystemAddress.ToString(); tLanServerInfo.usPort = _cServerSystemAddress.GetPort(); tLanServerInfo.uiLatency = RakNet.RakNet.GetTimeMS() - uiTime; tLanServerInfo.cGuid = new RakNet.RakNetGUID(_cServerGuid.g); // Convert response data to server info tLanServerInfo.tServerInfo = new CNetworkServer.TServerInfo(baOfflinePingResponse); uint uiLocalNumberOfAddresses = m_cRnPeer.GetNumberOfAddresses(); string sIpPrefix = _cServerSystemAddress.ToString().Substring(0, _cServerSystemAddress.ToString().IndexOf('.')); bool bIsLanServer = false; for (uint i = 0; i < uiLocalNumberOfAddresses; ++i) { string sMyLanIp = m_cRnPeer.GetLocalIP(i); string sLanIpPrefix = sMyLanIp.Substring(0, sMyLanIp.IndexOf('.')); if (sLanIpPrefix == sIpPrefix) { bIsLanServer = true; break; } } if (!bIsLanServer) { m_aOnlineServers.Add(tLanServerInfo); } else { m_aLanServers.Add(tLanServerInfo); } //Logger.WriteError("Added server ({0}:({1}) lan ({2})", tLanServerInfo.sIp, tLanServerInfo.usPort, bIsLanServer); // Notify event observers if (EventFoundServer != null) { EventFoundServer(tLanServerInfo); } }