Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:如何使用我可以';你不能提前吗?_C#_Sockets_Unity3d_Networking - Fatal编程技术网

C#:如何使用我可以';你不能提前吗?

C#:如何使用我可以';你不能提前吗?,c#,sockets,unity3d,networking,C#,Sockets,Unity3d,Networking,我正在用C#NET为每间客房服务器开发一个多人游戏,用Unity/C#为实际游戏开发一个多人游戏。我在局域网或我自己的PC上都能很好地工作,但我似乎无法找到一种方法,在运行过程中始终保持端口映射,以便我可以与其他家庭网络上的服务器通信 正是因为我的服务器的工作方式,我需要打开新的套接字,并在一个新端口上频繁地操作它们,所以我的潜在范围远远大于我可以手动逐个放入的范围 感谢所有帮助您的人。从您的服务器,您只能直接与Internet上的专用网络和公共IP地址通信。您无法连接到另一个远程服务器后面的专

我正在用C#NET为每间客房服务器开发一个多人游戏,用Unity/C#为实际游戏开发一个多人游戏。我在局域网或我自己的PC上都能很好地工作,但我似乎无法找到一种方法,在运行过程中始终保持端口映射,以便我可以与其他家庭网络上的服务器通信

正是因为我的服务器的工作方式,我需要打开新的套接字,并在一个新端口上频繁地操作它们,所以我的潜在范围远远大于我可以手动逐个放入的范围


感谢所有帮助您的人。

从您的服务器,您只能直接与Internet上的专用网络和公共IP地址通信。您无法连接到另一个远程服务器后面的专用IP地址。您需要在远程服务器上运行一个应用程序,该应用程序将消息从专用网络转发到公共服务器。该应用程序将是一个简单的两端口应用程序,从专用网络输入数据并在公用网络上发送。它需要跟踪有关专用计算机的信息,以便在返回响应时,可以将消息发送回正确的计算机。感谢您的帮助。你能把它写下来作为一个答案,这样我就可以接受它是正确的吗?@jdweng谈论的“两端口应用程序”被称为UPnP或NAT。你不需要一个单独的应用程序。另外,你的问题以前也被问过很多次。通常,您需要一个称为“打孔”的原则,使NAT后面的入站流量成为可能,而无需客户端手动端口转发。还有,为什么需要这么多端口?闻起来像是不正确的设计。搜索您需要的端口转发或NAT遍历,这实际上不是一项简单的任务。我建议您使用任何第三方服务(如光子)进行多人游戏。从服务器上,您只能直接与Internet上的专用网络和公共IP地址通信。您无法连接到另一个远程服务器后面的专用IP地址。您需要在远程服务器上运行一个应用程序,该应用程序将消息从专用网络转发到公共服务器。该应用程序将是一个简单的两端口应用程序,从专用网络输入数据并在公用网络上发送。它需要跟踪有关专用计算机的信息,以便在返回响应时,可以将消息发送回正确的计算机。感谢您的帮助。你能把它写下来作为一个答案,这样我就可以接受它是正确的吗?@jdweng谈论的“两端口应用程序”被称为UPnP或NAT。你不需要一个单独的应用程序。另外,你的问题以前也被问过很多次。通常,您需要一个称为“打孔”的原则,使NAT后面的入站流量成为可能,而无需客户端手动端口转发。还有,为什么需要这么多端口?闻起来像是不正确的设计。搜索您需要的端口转发或NAT遍历,这实际上不是一项简单的任务。我建议您使用任何第三方服务(如光子)进行多人游戏。