public override void OnReceivedBroadcast(string fromAddress, string data) { base.OnReceivedBroadcast(fromAddress, data); foreach (string key in broadcastsReceived.Keys) { NetworkBroadcastResult r = broadcastsReceived [key]; string s = new UnicodeEncoding().GetString(r.broadcastData, 0, r.broadcastData.Length); Log.d(s, Log.Tag.Net); string ip = s.Substring(0, s.IndexOf(':')); HostInfo hi = mHosts.Find(delegate(HostInfo a) { return(a.ip == ip); }); if (hi == null) { string[] ss = s.Split(':'); hi = new HostInfo(); hi.ip = ss[0]; short.TryParse(ss[1], out hi.port); hi.name = ss[2]; mHosts.Add(hi); EventMgr.single.PostEvent("Game.AddHost", hi); } hi.time = Time.realtimeSinceStartup; } }
public void AddNewServers(Dictionary <string, NetworkBroadcastResult> servers) { foreach (string serverAddress in servers.Keys) { NetworkBroadcastResult serverData = servers[serverAddress]; if (lanEntries.ContainsValue(serverAddress)) { continue; } Debug.LogWarning("Spawn Entry: " + serverAddress); GameObject newServer = (GameObject)Instantiate <GameObject>(transform.Find("ServerEntry").gameObject); newServer.transform.Find("Name").GetComponent <Text>().text = "LAN: " + serverAddress; //newServer.transform.Find("Size").GetComponent<Text>().text = serverInfo.currentSize + " / " + serverInfo.maxSize; //newServer.transform.Find("Pass").GetComponent<Text>().text = (serverInfo.isPrivate == true ? "T" : "F"); newServer.GetComponent <MatchInfoContainer>().lanAddress = serverAddress; lanEntries.Add(newServer, serverAddress); } UpdateContentWindow(); }
public void CreateServerList(Dictionary <string, NetworkBroadcastResult> broadCastResult) { List <Transform> childs = new List <Transform> (); foreach (Transform child in infoCellPrefab.transform.parent) { childs.Add(child); } childs.ForEach((Transform t) => { if (t != infoCellPrefab.transform) { Destroy(t.gameObject); } }); if (broadCastResult == null) { return; } foreach (string key in broadCastResult.Keys) { NetworkBroadcastResult result = broadCastResult [key]; string infoText = key.Replace("::ffff:", ""); GameObject cloneCell = Instantiate(infoCellPrefab.gameObject) as GameObject; cloneCell.gameObject.SetActive(true); cloneCell.transform.SetParent(infoCellPrefab.transform.parent, false); ServerInfoCell infoCell = cloneCell.GetComponent <ServerInfoCell> (); infoCell.Init(infoText, infoText); } }
private void OnMatchConnectClick(NetworkBroadcastResult p_match) { NetworkManagerSingleton.singleton.networkAddress = p_match.serverAddress; NetworkManagerSingleton.singleton.StartClient(); NetworkManagerSingleton.onClientConnect += OnClientConnect; NetworkManagerSingleton.Discovery.StopBroadcast(); _hasConnected = true; }
IEnumerator SetServerIP() { while (!serverIPSet) { foreach (string key in discovery.broadcastsReceived.Keys) { NetworkBroadcastResult networkBroadcastResult = discovery.broadcastsReceived[key]; ipAddress = networkBroadcastResult.serverAddress.Substring(7, networkBroadcastResult.serverAddress.Length - 7); Connect(); break; } yield return(new WaitForSeconds(0.5f)); } }
void OnGUI() { if (!showGUI) { return; } int num = 10 + offsetX; int num2 = 40 + offsetY; if (Application.platform == RuntimePlatform.WebGLPlayer) { return; } if (running) { if (isClient) { GUI.Label(new Rect((float)num, (float)num2, 200f, 20f), "Rooms (in LAN):"); num2 += 24; } if (broadcastsReceived != null) { foreach (string current in broadcastsReceived.Keys) { NetworkBroadcastResult networkBroadcastResult = broadcastsReceived[current]; if (GUI.Button(new Rect((float)num, (float)(num2 + 20), 200f, 20f), "Game at " + current) && useNetworkManager) { string text = BytesToString(networkBroadcastResult.broadcastData); string[] array = text.Split(new char[] { ':' }); if (array.Length == 3 && array[0] == "NetworkManager" && NetworkManager.singleton != null && NetworkManager.singleton.client == null) { NetworkManager.singleton.networkAddress = array[1]; NetworkManager.singleton.networkPort = Convert.ToInt32(array[2]); NetworkManager.singleton.StartClient(); } } num2 += 24; } } } }
void Update() { if (netDiscovery.isClient) { if (netDiscovery.broadcastsReceived.Count == 0) { elapsedTime += Time.deltaTime; if (elapsedTime > waitSecondsForServer) { netDiscovery.StopBroadcast(); netDiscovery.StartAsServer(); netManager.StartHost(); Debug.Log("No hosts were found, setting up as a host."); if (connectingWindow != null) { connectingWindow.SetActive(false); } } } else if (!isConnected) { var brdReceived = netDiscovery.broadcastsReceived; var brdKeys = brdReceived.Keys.ToArray(); NetworkBroadcastResult invitation = brdReceived[brdKeys[0]]; string msg = NetworkDiscovery.BytesToString(invitation.broadcastData); Debug.Log("Broadcast from host at " + invitation.serverAddress + " was received: " + msg); Debug.Log("Port: " + msg.Split(':')[2]); netManager.networkPort = int.Parse(msg.Split(':').Last()); //NetworkManager:address:port netManager.networkAddress = invitation.serverAddress; netManager.StartClient(); isConnected = true; netDiscovery.StopBroadcast(); if (connectingWindow != null) { connectingWindow.SetActive(false); } NetworkManager.singleton.client.RegisterHandler(MsgType.Disconnect, OnNetworkDisconnect); } } if (isConnected && !NetworkManager.singleton.client.handlers.ContainsValue(OnNetworkDisconnect)) { NetworkManager.singleton.client.RegisterHandler(MsgType.Disconnect, OnNetworkDisconnect); } }
/** * \brief Constructor of a broadcast * * @param nbr NetworkBroadcastResult * */ public Broadcast(NetworkBroadcastResult nbr) { serverAddress = nbr.serverAddress.Contains("::ffff:") ? nbr.serverAddress.Substring(7) : nbr.serverAddress; data = System.Text.Encoding.Unicode.GetString(nbr.broadcastData); }
//Update Info (LAN) public void updateInfo(NetworkBroadcastResult networkData) { GetComponentInChildren <Text>().text = Encoding.Unicode.GetString(networkData.broadcastData); this.networkDataBroadcast = networkData; }