internal UnityMatchManagerServer() { udpNetwork = new UdpNetwork(1024 * Game.Config.MaxPlayers, 1024 * Game.Config.MaxPlayers); udpNetwork.InitAsServer(ProtocolConfig.Port); localPlayerId = ++playerIdSequence; var client = new Client(localPlayerId, null, true); clients.Add(client); packetWriter = new BinaryWriter(new MemoryStream(sendBuffer), Encoding.UTF8); packetReader = new BinaryReader(new MemoryStream(receiveBuffer), Encoding.UTF8); historyWriter = new BinaryWriter(new MemoryStream(commandsHistoryBuffer), Encoding.UTF8); futureCommands.Add(new PlayerCommand { playerId = 0, command = new Commands.SetRandomSeed { seed = (uint)Random.Range(0, 1000000) } }); futureCommands.Add(new PlayerCommand { playerId = 0, command = new Commands.AddPlayer { id = localPlayerId } }); }
internal UnityMatchManagerClient(string serverAddress) { this.serverAddress = serverAddress; udpNetwork = new UdpNetwork(1024, 100 * 1024); udpNetwork.lastWriteRemoteIpEndPoint.Address = IPAddress.Parse(serverAddress); udpNetwork.lastWriteRemoteIpEndPoint.Port = ProtocolConfig.Port; udpNetwork.InitAsClient(); packetWriter = new BinaryWriter(new MemoryStream(sendBuffer), Encoding.UTF8); packetReader = new BinaryReader(new MemoryStream(receiveBuffer), Encoding.UTF8); userInterfaceManager.RegisterActivity(new NetworkActivity(this, userInterfaceManager.canvasObject.transform.Find("NetworkActivity").gameObject)); }
private void Start() { btnServer.OnClickAsObservable().Subscribe(_ => NetworkHandler.Instance.RequestHandshake()); btnList.OnClickAsObservable().Subscribe(_ => NetworkHandler.Instance.RequestList()); btnPeerConnect.OnClickAsObservable().Subscribe(_ => NetworkHandler.Instance.RequestConnection(new IPEndPoint(IPAddress.Parse(inputPeerIP.text), int.Parse(inputPeerPort.text)))); btnDirect.OnClickAsObservable().Subscribe(_ => UdpNetwork.SendData(inputChat.text, new IPEndPoint(IPAddress.Parse(inputIP.text), int.Parse(inputPort.text)))); btnSend.OnClickAsObservable().Subscribe(_ => NetworkHandler.Instance.SendCustomMessage(inputChat.text)); UdpNetwork.receivedMessageHandler .AsObservable() .ObserveOnMainThread() .TakeUntilDestroy(this) .Skip(1) .Subscribe(x => ShowMessage($"FROM {x.Item2.Address} : {x.Item2.Port}\n{JsonConvert.SerializeObject(x.Item1)}")); UdpNetwork.sendingMessageNotifier .AsObservable() .ObserveOnMainThread() .TakeUntilDestroy(this) .Skip(1) .Subscribe(x => ShowMessage(x)); List <Dropdown.OptionData> list = new List <Dropdown.OptionData>(); foreach (var name in Enum.GetNames(typeof(Header))) { Dropdown.OptionData data = new Dropdown.OptionData(); data.text = name; list.Add(data); } TimerObservable(3, 1f); //NetworkHandler.Instance.RequestHandshake(); }