public void ConnectToServer(string ip, ushort port, string user) { // Create a debug log file Type skaterSpawner = AccessTools.TypeByName("SkaterSpawner"); if (skaterSpawner != null) { object spawnerInstance = Traverse.Create(skaterSpawner).Property("Instance").GetValue(); if (spawnerInstance != null) { Traverse.Create(spawnerInstance).Method("RemoveModelCoroutine").GetValue(); } } int i = 0; while (this.debugWriter == null) { string filename = "Multiplayer Debug Client" + (i == 0 ? "" : " " + i.ToString()) + ".txt"; try { this.debugWriter = new StreamWriter(filename); } catch (Exception) { this.debugWriter = null; i++; } } this.debugWriter.AutoFlush = true; this.debugWriter.WriteLine("Attempting to connect to server ip {0} on port {1}", ip, port.ToString()); MultiplayerUtils.serverMapDictionary.Clear(); this.playerController = new MultiplayerLocalPlayerController(this.debugWriter); this.playerController.ConstructPlayer(); this.playerController.username = user; // TODO: Add popup window with a download for vc_redistx64.exe Library.Initialize(); client = new NetworkingSockets(); IPAddress serverIP = null; if (!IPAddress.TryParse(ip, out serverIP)) { try { IPHostEntry hostInfo = Dns.GetHostEntry(ip); foreach (IPAddress address in hostInfo.AddressList) { if (address.MapToIPv4() != null) { serverIP = address.MapToIPv4(); } } } catch (Exception) { } } serverPort = port; serverIPString = serverIP.ToString(); Address remoteAddress = new Address(); remoteAddress.SetAddress(serverIP.ToString(), port); connection = client.Connect(ref remoteAddress); status = StatusCallback; #if !VALVESOCKETS_SPAN netMessages = new NetworkingMessage[maxMessages]; #endif networkMessageThread = new Thread(UpdateClient); networkMessageThread.IsBackground = true; networkMessageThread.Start(); decompressionThread = new Thread(DecompressSoundAnimationQueue); decompressionThread.IsBackground = true; decompressionThread.Start(); }
public void ConnectToServer(string ip, ushort port, string user) { // Create a debug log file int i = 0; while (this.debugWriter == null) { string filename = "Multiplayer Debug Client" + (i == 0 ? "" : " " + i.ToString()) + ".txt"; try { this.debugWriter = new StreamWriter(filename); } catch (Exception) { this.debugWriter = null; i++; } } this.debugWriter.AutoFlush = true; this.debugWriter.WriteLine("Attempting to connect to server ip {0} on port {1}", ip, port.ToString()); MultiplayerUtils.serverMapDictionary.Clear(); this.playerController = new MultiplayerLocalPlayerController(this.debugWriter); this.playerController.ConstructPlayer(); this.playerController.username = user; Library.Initialize(); client = new NetworkingSockets(); IPAddress serverIP = null; if (!IPAddress.TryParse(ip, out serverIP)) { try { IPHostEntry hostInfo = Dns.GetHostEntry(ip); foreach (IPAddress address in hostInfo.AddressList) { if (address.MapToIPv4() != null) { serverIP = address.MapToIPv4(); } } } catch (Exception) { } } Address remoteAddress = new Address(); remoteAddress.SetAddress(serverIP.ToString(), port); connection = client.Connect(ref remoteAddress); status = StatusCallback; #if !VALVESOCKETS_SPAN netMessages = new NetworkingMessage[maxMessages]; #endif networkMessageThread = new Thread(UpdateClient); networkMessageThread.IsBackground = true; networkMessageThread.Start(); }