private void ProcessServerRequests(object state) { NetPeer myPeer = (NetPeer)state; NetIncomingMessage myMessage = myPeer.ReadMessage(); switch (myMessage.MessageType) { case NetIncomingMessageType.Error: break; case NetIncomingMessageType.StatusChanged: NetConnectionStatus myStatus = (NetConnectionStatus)myMessage.ReadByte(); switch (myStatus) { case NetConnectionStatus.None: break; case NetConnectionStatus.InitiatedConnect: break; case NetConnectionStatus.ReceivedInitiation: break; case NetConnectionStatus.RespondedAwaitingApproval: break; case NetConnectionStatus.RespondedConnect: break; case NetConnectionStatus.Connected: break; case NetConnectionStatus.Disconnecting: break; case NetConnectionStatus.Disconnected: int i = 0; OnDisconnect?.Invoke(myMessage.SenderConnection); break; } break; case NetIncomingMessageType.UnconnectedData: break; case NetIncomingMessageType.ConnectionApproval: break; case NetIncomingMessageType.Data: myStream.Write(myMessage.Data, 0, myMessage.Data.Length); myStream.Position = 0; Packet myPacket = (Packet)mySendFormatter.Deserialize(myStream); myStream.SetLength(0); myPacket.Sender = myMessage.SenderConnection; myFactory.SetProcessor(myPacket); myPacket.Process(); break; case NetIncomingMessageType.Receipt: break; case NetIncomingMessageType.DiscoveryRequest: break; case NetIncomingMessageType.DiscoveryResponse: break; case NetIncomingMessageType.VerboseDebugMessage: break; case NetIncomingMessageType.DebugMessage: break; case NetIncomingMessageType.WarningMessage: break; case NetIncomingMessageType.ErrorMessage: break; case NetIncomingMessageType.NatIntroductionSuccess: break; case NetIncomingMessageType.ConnectionLatencyUpdated: break; } myPeer.Recycle(myMessage); }
private void OnReceived(object state) { MemoryStream myStream = new MemoryStream(); BinaryFormatter mySendFormatter = new BinaryFormatter(); var myMessage = (NetIncomingMessage)state; switch (myMessage.MessageType) { case NetIncomingMessageType.Error: break; case NetIncomingMessageType.StatusChanged: break; case NetIncomingMessageType.UnconnectedData: break; case NetIncomingMessageType.ConnectionApproval: break; case NetIncomingMessageType.Data: myStream.Write(myMessage.Data, 0, myMessage.Data.Length); short myPacketID = myMessage.PeekInt16(); Packet myPacket = (Packet)mySendFormatter.Deserialize(myStream); myPacket.Sender = myMessage.SenderConnection; myPacket.Process(); myMessage = null; break; case NetIncomingMessageType.Receipt: break; case NetIncomingMessageType.DiscoveryRequest: break; case NetIncomingMessageType.DiscoveryResponse: break; case NetIncomingMessageType.VerboseDebugMessage: var myError = myMessage.ReadString(); LogHandler <MapServerHandler> .WriteToFile("Lidgren Warning: ", LogHandler <MapServerHandler> .LoggerType.WARNING, myError); break; case NetIncomingMessageType.DebugMessage: myError = myMessage.ReadString(); LogHandler <MapServerHandler> .WriteToFile("Lidgren Warning: ", LogHandler <MapServerHandler> .LoggerType.WARNING, myError); break; case NetIncomingMessageType.WarningMessage: myError = myMessage.ReadString(); LogHandler <MapServerHandler> .WriteToFile("Lidgren Error: ", LogHandler <MapServerHandler> .LoggerType.WARNING, myError); break; case NetIncomingMessageType.ErrorMessage: myError = myMessage.ReadString(); LogHandler <MapServerHandler> .WriteToFile("Lidgren Error: ", LogHandler <MapServerHandler> .LoggerType.EXCEPTION, myError); break; case NetIncomingMessageType.NatIntroductionSuccess: break; case NetIncomingMessageType.ConnectionLatencyUpdated: break; } }
private void ProcessIncoming(object state) { NetPeer myPeer = (NetPeer)state; NetIncomingMessage myMessage = myPeer.ReadMessage(); switch (myMessage.MessageType) { case NetIncomingMessageType.Error: break; case NetIncomingMessageType.StatusChanged: switch ((NetConnectionStatus)myMessage.ReadByte()) { case NetConnectionStatus.None: break; case NetConnectionStatus.InitiatedConnect: break; case NetConnectionStatus.ReceivedInitiation: break; case NetConnectionStatus.RespondedAwaitingApproval: break; case NetConnectionStatus.RespondedConnect: break; case NetConnectionStatus.Connected: isConnected = true; OnConnect?.Invoke(); break; case NetConnectionStatus.Disconnecting: break; case NetConnectionStatus.Disconnected: isConnected = false; myTimer = new Timer(new TimerCallback(AttemptToReconnect), this, 0, 500); OnDisconnect?.Invoke(); break; } int i = 0; break; case NetIncomingMessageType.UnconnectedData: break; case NetIncomingMessageType.ConnectionApproval: break; case NetIncomingMessageType.Data: myStream.Write(myMessage.Data, 0, myMessage.Data.Length); myStream.Position = 0; Packet myPacket = (Packet)mySendFormatter.Deserialize(myStream); myStream.SetLength(0); PacketFactory.SetProcessor(myPacket); myPacket.Process(); break; case NetIncomingMessageType.Receipt: break; case NetIncomingMessageType.DiscoveryRequest: break; case NetIncomingMessageType.DiscoveryResponse: break; case NetIncomingMessageType.VerboseDebugMessage: break; case NetIncomingMessageType.DebugMessage: break; case NetIncomingMessageType.WarningMessage: Debug.WriteLine(myMessage.ReadString()); break; case NetIncomingMessageType.ErrorMessage: break; case NetIncomingMessageType.NatIntroductionSuccess: break; case NetIncomingMessageType.ConnectionLatencyUpdated: break; } myPeer.Recycle(myMessage); }