public override void StopListen() { NetworkTransport.RemoveHost(this._hostID); this._peerID = 0; this._state = MPPeer.PeerState.Inited; this.ResetServerData(); }
public override void Listen(int serverPort = 0, string ipAddress = null) { NetPeerConfiguration config = new NetPeerConfiguration("ng") { AutoFlushSendQueue = true }; config.EnableMessageType(NetIncomingMessageType.ConnectionApproval); if (serverPort != 0) { config.Port = serverPort; } if (ipAddress != null) { config.LocalAddress = IPAddress.Parse(ipAddress); } else if (ipAddress == null) { config.LocalAddress = IPAddress.Parse("0.0.0.0"); } this._lidgrenServer = new NetServer(config); this._lidgrenPeer = this._lidgrenServer; this._lidgrenServer.Start(); this._peerID = 1; this._state = MPPeer.PeerState.ServerListening; }
public override void StopListen() { this._lidgrenServer.Shutdown("what?"); this._peerID = 0; this._state = MPPeer.PeerState.Inited; this.ResetServerData(); }
public override void Shutdown() { if (this._state > MPPeer.PeerState.Inited) { this._lidgrenPeer.Shutdown("BYE"); } this.ResetServerData(); this._state = MPPeer.PeerState.Unitialized; }
public override void Shutdown() { if (this._state > MPPeer.PeerState.Inited) { NetworkTransport.RemoveHost(this._hostID); } NetworkTransport.Shutdown(); this.ResetServerData(); this._clientConnectState = ClientConnectState.Idle; this._state = MPPeer.PeerState.Unitialized; }
public override void Init() { NetworkTransport.Init(this._globalConfig); this._state = MPPeer.PeerState.Inited; this._selfConnID = -1; this._hostID = -1; this._selfBuffer = new byte[0x10]; this._serverConnectedPeerCount = 0; this._peerMap = new int[7]; this._totalPeerCount = 0; this.ResetServerData(); }
public override void ServerReady() { this._totalPeerCount = 1 + this._serverConnectedPeerCount; byte[] data = new byte[0x40]; data[0] = base.PackHeader(7, 2); data[1] = (byte)this._totalPeerCount; this.SendByChannel(data, data.Length, this.reliableChannel, 0); this._state = MPPeer.PeerState.Established; if (base.onEstablished != null) { base.onEstablished(); } }
public override void ServerReady() { this._totalPeerCount = 1 + this._serverConnectedPeerCount; for (int i = 2; i <= (1 + this._serverConnectedPeerCount); i++) { this._selfBuffer[0] = base.PackHeader((byte)i, 2); this._selfBuffer[1] = (byte)this._totalPeerCount; this.SendTo(this._peerMap[i], 0, this._selfBuffer, 2); } this._state = MPPeer.PeerState.Established; if (base.onEstablished != null) { base.onEstablished(); } }
public override void Connect(string ipAddress, int serverPort) { NetPeerConfiguration config = new NetPeerConfiguration("ng") { AutoFlushSendQueue = true }; this._lidgrenClient = new NetClient(config); this._lidgrenPeer = this._lidgrenClient; this._lidgrenClient.Start(); NetOutgoingMessage hailMessage = this._lidgrenClient.CreateMessage(8); hailMessage.Write("ng"); this._lidgrenClient.Connect(ipAddress, serverPort, hailMessage); this._state = MPPeer.PeerState.ClientConnecting; }
public override void Listen(int serverPort = 0, string ipAddress = null) { if ((ipAddress != null) && (serverPort != 0)) { this._hostID = NetworkTransport.AddHost(this._ht, serverPort, ipAddress); } else if ((ipAddress == null) && (serverPort != 0)) { this._hostID = NetworkTransport.AddHost(this._ht, serverPort); } else { this._hostID = NetworkTransport.AddHost(this._ht); } this._peerID = 1; this._state = MPPeer.PeerState.ServerListening; }
public override void Connect(string ipAddress, int serverPort) { byte num; if (this._isDelaySimulator) { this._hostID = NetworkTransport.AddHostWithSimulator(this._ht, 0x3e8, 0x5dc); this._selfConnID = NetworkTransport.ConnectWithSimulator(this._hostID, ipAddress, serverPort, 0, out num, this._simulatorConfig); } else { this._hostID = NetworkTransport.AddHost(this._ht); this._selfConnID = NetworkTransport.Connect(this._hostID, ipAddress, serverPort, 0, out num); } if (num != 0) { throw new UnityException("bad connection : " + ((NetworkError)num)); } this._state = MPPeer.PeerState.ClientConnecting; this._clientConnectState = ClientConnectState.Idle; }
public override void Core() { if (this._state > MPPeer.PeerState.Inited) { NetworkEventType dataEvent = NetworkEventType.DataEvent; while ((dataEvent != NetworkEventType.Nothing) && (this._state > MPPeer.PeerState.Inited)) { bool flag; int num2; dataEvent = NetworkTransport.ReceiveFromHost(this._hostID, out this._recvConnID, out this._recvChannelID, this._recvBuffer, this._recvBuffer.Length, out this._recvDataSize, out this._recvErr); if (this._state != MPPeer.PeerState.ServerListening) { goto Label_0167; } switch (dataEvent) { case NetworkEventType.DataEvent: { this.ServerDispatchDataEvent(dataEvent); continue; } case NetworkEventType.ConnectEvent: { this.CheckNetError(this._recvErr, dataEvent); this._serverConnectedPeerCount++; byte index = (byte)(this._peerID + this._serverConnectedPeerCount); this._peerMap[index] = this._recvConnID; this._selfBuffer[0] = base.PackHeader(index, 1); this._selfBuffer[1] = index; this.SendTo(this._recvConnID, 0, this._selfBuffer, 2); if (base.onConnected != null) { base.onConnected(index); } continue; } case NetworkEventType.DisconnectEvent: flag = false; num2 = 2; goto Label_0143; default: { continue; } } Label_00F7: if ((this._peerMap[num2] != -1) && (this._peerMap[num2] == this._recvConnID)) { this._peerMap[num2] = -1; if (base.onDisconnected != null) { base.onDisconnected(num2); } flag = true; continue; } num2++; Label_0143: if (num2 <= (1 + this._serverConnectedPeerCount)) { goto Label_00F7; } continue; Label_0167: if (this._state == MPPeer.PeerState.ClientConnecting) { if (this._clientConnectState == ClientConnectState.Idle) { if (dataEvent == NetworkEventType.ConnectEvent) { this.CheckNetError(this._recvErr, dataEvent); this._clientConnectState = ClientConnectState.JustConnectedWaitingForSetClientID; } else if (dataEvent == NetworkEventType.DataEvent) { Debug.LogError("not expecting data event before peer ID is set"); } } else if ((this._clientConnectState == ClientConnectState.JustConnectedWaitingForSetClientID) && (dataEvent == NetworkEventType.DataEvent)) { this.CheckNetError(this._recvErr, dataEvent); int num3 = base.ParseMessageType(this._recvBuffer); int num4 = base.ParsePeerID(this._recvBuffer); this._peerID = num4; this._state = MPPeer.PeerState.ClientConnected; this._clientConnectState = ClientConnectState.ConnectedAndGotClientID; if (base.onConnected != null) { base.onConnected(this._selfConnID); } } } else { if (this._state != MPPeer.PeerState.ClientConnected) { goto Label_02FE; } switch (dataEvent) { case NetworkEventType.DataEvent: { int num5 = base.ParseMessageType(this._recvBuffer); this.CheckNetError(this._recvErr, dataEvent); if (num5 != 2) { goto Label_02C7; } this._totalPeerCount = this._recvBuffer[1]; this._state = MPPeer.PeerState.Established; if (base.onEstablished != null) { base.onEstablished(); } break; } case NetworkEventType.DisconnectEvent: if (base.onDisconnected != null) { base.onDisconnected(this._selfConnID); } this._state = MPPeer.PeerState.ClientDropped; break; } } continue; Label_02C7: if (base.onPacket != null) { base.onPacket(this._recvBuffer, this._recvDataSize - 1, 1, this._recvChannelID % 2); } continue; Label_02FE: if (this._state == MPPeer.PeerState.Established) { if (this.isServer) { switch (dataEvent) { case NetworkEventType.DataEvent: { this.ServerDispatchDataEvent(dataEvent); continue; } case NetworkEventType.Nothing: { continue; } } continue; } switch (dataEvent) { case NetworkEventType.DataEvent: { this.CheckNetError(this._recvErr, dataEvent); if (base.onPacket != null) { base.onPacket(this._recvBuffer, this._recvDataSize - 1, 1, this._recvChannelID % 2); } continue; } case NetworkEventType.Nothing: { continue; } } } } } }
public override void Core() { if (this._state > MPPeer.PeerState.Inited) { NetIncomingMessage message; while ((message = this._lidgrenPeer.ReadMessage()) != null) { byte num; int num2; NetConnectionStatus status; bool flag; int num3; NetIncomingMessageType messageType = message.MessageType; switch (messageType) { case NetIncomingMessageType.VerboseDebugMessage: case NetIncomingMessageType.DebugMessage: case NetIncomingMessageType.WarningMessage: case NetIncomingMessageType.ErrorMessage: Debug.LogError(message.ReadString()); break; } if (this._state != MPPeer.PeerState.ServerListening) { goto Label_024D; } messageType = message.MessageType; switch (messageType) { case NetIncomingMessageType.StatusChanged: status = (NetConnectionStatus)message.ReadByte(); Debug.Log(message.ReadString()); if (status != NetConnectionStatus.Disconnected) { goto Label_01C2; } flag = false; num3 = 2; goto Label_01AE; case NetIncomingMessageType.ConnectionApproval: if (!(message.ReadString() == "ng")) { goto Label_0130; } num = 0; num2 = 2; goto Label_00D2; case NetIncomingMessageType.Data: this.ServerDispatchDataEvent(message); goto Label_0498; default: goto Label_0498; } Label_00B9: if (this._peerMap[num2] == null) { num = (byte)num2; goto Label_00E0; } num2++; Label_00D2: if (num2 < this._peerMap.Length) { goto Label_00B9; } Label_00E0: this._peerMap[num] = message.SenderConnection; NetOutgoingMessage localHail = this._lidgrenPeer.CreateMessage(); localHail.Data[0] = base.PackHeader(num, 1); localHail.Data[1] = num; localHail.LengthBytes = 2; message.SenderConnection.Approve(localHail); goto Label_0498; Label_0130: message.SenderConnection.Deny(); goto Label_0498; Label_016A: if (this._peerMap[num3].RemoteUniqueIdentifier == message.SenderConnection.RemoteUniqueIdentifier) { flag = true; this._peerMap[num3] = null; this._serverConnectedPeerCount--; goto Label_0498; } num3++; Label_01AE: if (num3 < this._peerMap.Length) { goto Label_016A; } goto Label_0498; Label_01C2: if (status == NetConnectionStatus.Connected) { int connID = 0; for (int i = 2; i < this._peerMap.Length; i++) { if (this._peerMap[i].RemoteUniqueIdentifier == message.SenderConnection.RemoteUniqueIdentifier) { connID = i; break; } } this._serverConnectedPeerCount++; if (base.onConnected != null) { base.onConnected(connID); } } goto Label_0498; Label_024D: if (this._state == MPPeer.PeerState.ClientConnecting) { if (message.MessageType == NetIncomingMessageType.StatusChanged) { NetConnectionStatus status2 = (NetConnectionStatus)message.ReadByte(); string str3 = message.ReadString(); Debug.Log(string.Format("{0}, {1}", status2, str3)); if (status2 == NetConnectionStatus.Connected) { NetIncomingMessage remoteHailMessage = message.SenderConnection.RemoteHailMessage; int num6 = base.ParsePeerID(remoteHailMessage.Data); int num7 = base.ParseMessageType(remoteHailMessage.Data); int num8 = remoteHailMessage.Data[1]; this._peerID = num6; this._state = MPPeer.PeerState.ClientConnected; if (base.onConnected != null) { base.onConnected(this._peerID); } } } else if (message.MessageType != NetIncomingMessageType.Data) { } } else { if (this._state != MPPeer.PeerState.ClientConnected) { goto Label_03F7; } messageType = message.MessageType; if (messageType == NetIncomingMessageType.StatusChanged) { NetConnectionStatus status3 = (NetConnectionStatus)message.ReadByte(); Debug.Log(message.ReadString()); if (status3 == NetConnectionStatus.Disconnected) { if (base.onDisconnected != null) { base.onDisconnected(this._peerID); } this._state = MPPeer.PeerState.ClientDropped; } } else if (messageType == NetIncomingMessageType.Data) { goto Label_037C; } } goto Label_0498; Label_037C: if (base.ParseMessageType(message.Data) == 2) { this._totalPeerCount = message.Data[1]; this._state = MPPeer.PeerState.Established; if (base.onEstablished != null) { base.onEstablished(); } } else if (base.onPacket != null) { base.onPacket(message.Data, message.LengthBytes - 1, 1, (int)message.DeliveryMethod); } goto Label_0498; Label_03F7: if (this._state == MPPeer.PeerState.Established) { if (this.isServer) { messageType = message.MessageType; if ((messageType != NetIncomingMessageType.StatusChanged) && (messageType == NetIncomingMessageType.Data)) { this.ServerDispatchDataEvent(message); } } else { messageType = message.MessageType; if (((messageType != NetIncomingMessageType.StatusChanged) && (messageType == NetIncomingMessageType.Data)) && (base.onPacket != null)) { base.onPacket(message.Data, message.LengthBytes - 1, 1, (int)message.DeliveryMethod); } } } Label_0498: this._lidgrenPeer.Recycle(message); } } }
public override void Init() { this._state = MPPeer.PeerState.Inited; this._peerMap = new NetConnection[7]; this._serverConnectedPeerCount = 0; }