/// <summary> /// Sets up Socket ready to send data to endpoint as a client /// </summary> /// <param name="endPoint"></param> public void Connect(IEndPoint endPoint) { switch (_steamOptions.SteamMode) { case SteamModes.P2P: var steamEndPoint = (SteamEndpoint)endPoint; var steamIdentity = new SteamNetworkingIdentity(); steamIdentity.SetSteamID(steamEndPoint.Address); _steamSocketManager.HoHSteamNetConnection = SteamNetworkingSockets.ConnectP2P(ref steamIdentity, 0, 0, Array.Empty <SteamNetworkingConfigValue_t>()); _steamSocketManager.SteamConnections.Add(steamEndPoint, _steamSocketManager.HoHSteamNetConnection); break; case SteamModes.UDP: _endPoint = (SteamSocketFactory.SteamEndPointWrapper)endPoint; var address = new SteamNetworkingIPAddr(); address.SetIPv6(((IPEndPoint)_endPoint.inner).Address.GetAddressBytes(), (ushort)((IPEndPoint)_endPoint.inner).Port); _steamSocketManager.HoHSteamNetConnection = SteamNetworkingSockets.ConnectByIPAddress(ref address, 0, Array.Empty <SteamNetworkingConfigValue_t>()); _steamSocketManager.SteamConnections.Add(_endPoint, _steamSocketManager.HoHSteamNetConnection); break; default: Debug.LogWarning("Unknown steam mode. Please check if mode has been supported."); break; } }
/// <summary> /// Starts listens for data on an endpoint /// <para>Used by Server to allow clients to connect</para> /// </summary> /// <param name="endPoint">the endpoint to listen on</param> public void Bind(IEndPoint endPoint) { switch (_steamOptions.SteamMode) { case SteamModes.P2P: _steamSocketManager.Socket = SteamNetworkingSockets.CreateListenSocketP2P(0, 0, Array.Empty <SteamNetworkingConfigValue_t>()); break; case SteamModes.UDP: _endPoint = (SteamSocketFactory.SteamEndPointWrapper)endPoint; var address = new SteamNetworkingIPAddr(); address.SetIPv6(((IPEndPoint)_endPoint.inner).Address.GetAddressBytes(), (ushort)((IPEndPoint)_endPoint.inner).Port); _steamSocketManager.Socket = SteamNetworkingSockets.CreateListenSocketIP(ref address, 0, Array.Empty <SteamNetworkingConfigValue_t>()); break; default: _steamSocketManager.LogDebug("Unknown steam mode. Please check if mode has been supported.", LogType.Warning); throw new NotImplementedException("Unknown steam mode. This mode must not be implemented fully yet."); } }
// Token: 0x0600097E RID: 2430 RVA: 0x00045A6C File Offset: 0x00043C6C public ZSteamSocket(SteamNetworkingIPAddr host) { ZSteamSocket.RegisterGlobalCallbacks(); string str; host.ToString(out str, true); ZLog.Log("Starting to connect to " + str); this.m_con = SteamNetworkingSockets.ConnectByIPAddress(ref host, 0, null); ZSteamSocket.m_sockets.Add(this); }
// Token: 0x06000974 RID: 2420 RVA: 0x00045828 File Offset: 0x00043A28 public bool GetJoinHost(out CSteamID steamID, out SteamNetworkingIPAddr addr) { steamID = this.m_joinUserID; addr = this.m_joinAddr; if (this.m_joinUserID.IsValid() || this.m_haveJoinAddr) { this.m_joinUserID = CSteamID.Nil; this.m_haveJoinAddr = false; this.m_joinAddr.Clear(); return(true); } return(false); }
// Set to specified IP:port public void SetIPAddr(SteamNetworkingIPAddr addr) { NativeMethods.SteamAPI_SteamNetworkingIdentity_SetIPAddr(ref this, ref addr); }
static void Postfix(SteamNetworkingIPAddr serverAddr) { ValheimFaveServers.instance._Logger.LogInfo("Saved IP address in patch on set server host"); ValheimFaveServers.instance.gameServerIp = serverAddr; }