匿名人士@ 路科444
爱玩游戏!!!
关注数: 33 粉丝数: 101 发帖数: 1,614 关注贴吧数: 74
关于虚拟局域网组队的方案分享 这就是一个给游戏用的虚拟局域网支持ipv6/ipv4/域名 所有机器先通过公网入口接进来,然后每台机器拿一个虚拟内网 IP,之后大家就按这个虚拟 IP 通信。 整体结构 - 公网入口:xx.xxxxx.com:xxxxx - 虚拟网段:10.0.11.0/24 - 网关:10.0.11.1 - 网关机上的本地服务节点:10.0.11.2 - 其他远端节点:比如 10.0.11.5 - 普通客户端:动态分配,比如 10.0.11.7 软件到底干了什么 1. 客户端先连公网入口 2. 向服务端申请一个虚拟 IP 3. 本机创建一张虚拟网卡 4. 把发往虚拟网段的流量都送进这张虚拟网卡 5. 软件把这些 IP 包通过隧道发到服务端 6. 服务端再按目标虚拟 IP 转发给对应机器 结果 所有接入的机器,逻辑上就像在同一个局域网里。 比如: - 玩家客户端拿到 10.0.11.7 - 网关机上的游戏节点是 10.0.11.2 - 远端 Linux 游戏节点是 10.0.11.5 那客户端就可以直接访问: - 10.0.11.2 - 10.0.11.5 就像访问内网机器一样。 几个关键地址分别代表什么 - tunnel_server_ip - 公网入口地址 - 用来先接入这个虚拟局域网 - tunnel_port - 公网入口端口 - 用来建立隧道连接 - virtual_subnet - 整个虚拟局域网的网段 - virtual_gateway - 这个虚拟局域网里的网关地址 - server_virtual_ip - 某个节点自己在虚拟局域网中的固定地址 bind_on_gateway 是什么 - true - 这个节点 IP 直接绑定在公网入口服务器本机 - false - 这个节点 IP 留给远端 Linux 节点连接后使用 Windows 客户端做什么 - 自动连公网入口 - 自动申请虚拟 IP - 自动创建虚拟网卡 - 自动建立隧道 - 自动重连 Linux 客户端做什么 - 认领一个固定节点 IP - 加入这个虚拟局域网 - 让远端 Linux 服务器也成为局域网中的一个节点 你现在得到的效果 - 客户端可以 ping 服务端虚拟 IP - 客户端之间可以互通 - Linux 节点和 Windows 客户端都在同一个虚拟内网里 - 游戏直接连虚拟 IP 即可
安装了新显卡发现无法进入游戏了错误代码什么意思 大神进来看下 大神求救啊 Fatal error! VERSION: 254.93 ShooterGame.exe!UUI_OptionsMenu::LoadSettings() (0x00007ff6a45672ba) + 10 bytes [c:\svn_ark\projects\shootergame\source\shootergame\private\ui_optionsmenu.cpp:291] ShooterGame.exe!UUI_MainMenu::ClickedButton() (0x00007ff6a4560b1c) + 0 bytes [c:\svn_ark\projects\shootergame\source\shootergame\private\ui_mainmenu.cpp:337] ShooterGame.exe!UPrimalUI::execClickedButton() (0x00007ff6a493722b) + 139 bytes [c:\svn_ark\projects\shootergame\source\shootergame\classes\primalui.h:19] ShooterGame.exe!UFunction::Invoke() (0x00007ff6a4b92a70) + 6 bytes [c:\svn_ark\engine\source\runtime\coreuobject\private\uobject\class.cpp:3746] ShooterGame.exe!UObject::ProcessEvent() (0x00007ff6a4be0198) + 0 bytes [c:\svn_ark\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:931] ShooterGame.exe!TMulticastScriptDelegate<FWeakObjectPtr>::ProcessMulticastDelegate<UObject>() (0x00007ff6a40bd050) + 0 bytes [c:\svn_ark\engine\source\runtime\core\public\uobject\scriptdelegates.h:390] ShooterGame.exe!UButton::SlateHandleClicked() (0x00007ff6a50b6d54) + 0 bytes [c:\svn_ark\engine\source\runtime\umg\private\components\button.cpp:157] ShooterGame.exe!TBaseUObjectMethodDelegateInstance_RetVal_NoParams<UButton,FReply>::Execute() (0x00007ff6a50e53c1) + 11 bytes [c:\svn_ark\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:520] ShooterGame.exe!SButton::OnMouseButtonUp() (0x00007ff6a4d61852) + 18 bytes [c:\svn_ark\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:205] ShooterGame.exe!FSlateApplication::ProcessMouseButtonUpEvent() (0x00007ff6a4cbd474) + 23 bytes [c:\svn_ark\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3604] ShooterGame.exe!FSlateApplication::OnMouseUp() (0x00007ff6a4cbcefd) + 16 bytes [c:\svn_ark\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3568] ShooterGame.exe!FWindowsApplication::ProcessDeferredMessage() (0x00007ff6a4b3ba82) + 12 bytes [c:\svn_ark\engine\source\runtime\core\private\windows\windowsapplication.cpp:1346] ShooterGame.exe!FWindowsApplication::DeferMessage() (0x00007ff6a4b3c151) + 74 bytes [c:\svn_ark\engine\source\runtime\core\private\windows\windowsapplication.cpp:1637] ShooterGame.exe!FWindowsApplication::ProcessMessage() (0x00007ff6a4b396f3) + 0 bytes [c:\svn_ark\engine\source\runtime\core\private\windows\windowsapplication.cpp:1043] ShooterGame.exe!FWindowsApplication::AppWndProc() (0x00007ff6a4b38b97) + 0 bytes [c:\svn_ark\engine\source\runtime\core\private\windows\windowsapplication.cpp:599] USER32.dll!UnknownFunction (0x00007ff8c1e81c24) + 0 bytes [UnknownFile:0] USER32.dll!UnknownFunction (0x00007ff8c1e8156c) + 0 bytes [UnknownFile:0] ShooterGame.exe!FWindowsPlatformMisc::PumpMessages() (0x00007ff6a4b49666) + 41 bytes [c:\svn_ark\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:785] ShooterGame.exe!FEngineLoop::Tick() (0x00007ff6a40ac67b) + 0 bytes [c:\svn_ark\engine\source\runtime\launch\private\launchengineloop.cpp:2397] ShooterGame.exe!GuardedMain() (0x00007ff6a40a6bec) + 0 bytes [c:\svn_ark\engine\source\runtime\launch\private\launch.cpp:140] ShooterGame.exe!GuardedMainWrapper() (0x00007ff6a40adc0a) + 5 bytes [c:\svn_ark\engine\source\runtime\launch\private\windows\launchwindows.cpp:125] ShooterGame.exe!WinMain() (0x00007ff6a40add38) + 8 bytes [c:\svn_ark\engine\source\runtime\launch\private\windows\launchwindows.cpp:209] ShooterGame.exe!__tmainCRTStartup() (0x00007ff6a6505b61) + 21 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618] KERNEL32.DLL!UnknownFunction (0x00007ff8c1388364) + 0 bytes [UnknownFile:0] ntdll.dll!UnknownFunction (0x00007ff8c21870d1) + 0 bytes [UnknownFile:0] ntdll.dll!UnknownFunction (0x00007ff8c21870d1) + 0 bytes [UnknownFile:0]
1 下一页