- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对网络相当陌生,lidgren 让我可以更轻松地开始为我的 XNA PC 游戏添加多人游戏功能。我一直在通过网络测试在我旁边设置我的笔记本电脑,它一直运行良好。问题是我将我的游戏副本发送给荷兰的一位 friend ,但她无法连接到我。我将其设置为一个人是主机,其他人是连接到该主机的客户端。
主机设置服务器如下:
Config = new NetPeerConfiguration("game");
Config.Port = 14242;
Config.EnableUPnP = true;
Config.MaximumConnections = 3;
Config.EnableMessageType(NetIncomingMessageType.ConnectionApproval);
Server = new NetServer(Config);
Server.Start();
Server.UPnP.ForwardPort(14242, "Forlorn Forest");
这是 ForwardPort 在失败时抛出的异常并给出“Bad Request”:
以及抛出的两个网络异常:
它在异常详细信息中说明了连接被远程主机关闭并且无法从传输连接读取数据:
关于这里可能发生的事情有什么想法吗?我的路由器启用了 UPnP。我已经使用 WireShark 查看了网络流量,我可以看到它显示格式错误的数据包,尽管我没有弄乱任何 Lidgren 代码,所以我不确定为什么会这样。
最佳答案
不幸的是,UPnP 协议(protocol)规范尚未在大量家用路由器上正确实现。这样做的结果是所有 UPnP 框架(甚至是 Intel 规范框架)都无法与某些本地路由器正确通信 UPnP。
您应该会发现,并不是您所有的 friend 路由器都能成功打开您请求的端口。您能做的最好的事情就是确保您的代码没有与您正在使用的 UPnP 框架相关的故障场景和未捕获的异常,并且您有充分的文档记录失败的 UPnP 用户如何为您的游戏手动设置端口转发。
关于c# - Lidgren 的 UPnP 和端口转发失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444424/
我正在为我的 XNA 游戏试验 Lidgren 库。我创建了一个简单的服务器和客户端: 服务器: NetPeerConfiguration config = new NetPeerConfigura
我有一个使用 lidgren 的简单客户端和服务器。客户端不断向服务器发送请求(消息由一个值为 1 的字节组成),客户端以“数据”(2000 ushorts)响应。它每秒大约执行此操作 20 次。我将
在我的 lindgren 网络测试中,我无法让我的客户端连接到我的服务器。我已经尝试了多种连接方式,但是当我尝试连接时它总是停止。对不起,如果这是一个广泛的问题,但我做错了什么?这是我的代码: cla
如何使用Lidgren.Network ?我的意思是,“安装”它以便我可以在我的项目中使用它?因为我很想开始玩简单的多人游戏,但我在网上找不到任何好的教程,但我听说 Lidgren.Network 很
我如何使用 Lidgren.Network ?我的意思是,“安装”它以便我可以在我的项目中使用它?因为我很想开始玩简单的多人游戏,但我在网上找不到任何好的教程,但我听说 Lidgren.Network
我对网络相当陌生,lidgren 让我可以更轻松地开始为我的 XNA PC 游戏添加多人游戏功能。我一直在通过网络测试在我旁边设置我的笔记本电脑,它一直运行良好。问题是我将我的游戏副本发送给荷兰的一位
我正在试验 lidgren在 XNA 中,我遇到了一些“滞后”问题。 我已经下载了他们的 XNA sample并注意到即使他们的样本也滞后。问题是,另一侧的移动并不流畅,我正在 LAN(实际上是在同一
我正在使用 Lidgren 作为我的服务器应用程序的网络库。我只是想了解事物如何在真实环境中结合在一起(数据库访问、网络、物理等),所以我决定为 Minecraft 编写一个基本的服务器应用程序。它不
我在 Monogame 中使用 Lidgren。玩家有可能想要主持一场比赛,然后离开大厅,并想再次主持。但是,当我在代码中执行此操作时,会引发以下异常:System.Net.Sockets.Socke
我正在使用 lidgen-network 库 3 来尝试创建对等连接。我是网络编程的新手,这就是我使用这个库的原因。 使用 DiscoverKnownPeer() 函数,我已经能够在我的网络中进行连接
我目前正在使用 c# XNA 和 lidgren 编写一个小型在线游戏,我想使用 mono + lidgren 编写能够在 linux(更便宜的托管解决方案)上运行的服务器程序。是否可以一起使用 li
我是一名优秀的程序员,十分优秀!