首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UPnP和Lidgren端口转发失败

UPnP和Lidgren端口转发失败
EN

Stack Overflow用户
提问于 2014-06-27 05:16:31
回答 1查看 1.2K关注 0票数 3

我对网络相当陌生,lidgren使我更容易开始在我的XNA PC游戏中添加多人功能。我一直在网络上进行测试,把我的笔记本电脑安装在我旁边,它一直运行得很好。问题是我把我的游戏副本寄给了荷兰的一位朋友,她无法与我联系。我把它设置为一个人是主机,而其他人是连接到那个主机的客户端。

主机将服务器设置如下:

代码语言:javascript
复制
 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在失败时抛出的异常,并给出“不良请求”:

以及引发的两个web异常:

它说明了远程主机正在关闭的连接,并且无法从传输连接读取异常详细信息中的数据:

对这里可能发生了什么有什么想法吗?我的路由器上启用了UPnP。我看了一下WireShark的网络流量,我可以看到它显示格式错误的数据包,尽管我没有混淆任何Lidgren代码,所以我不知道为什么会这样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 07:32:27

不幸的是,UPnP协议规范没有在大量的家庭路由器上正确地实现。其结果是,所有UPnP框架(甚至英特尔规范框架)都无法与某些本地路由器正确地通信UPnP。

您应该会发现,并不是所有的朋友路由器都会成功地打开您请求的端口。您所能做的最好的就是确保您的代码没有与您正在使用的UPnP框架相关的失败场景和不明确的异常,并且您已经很好地记录了失败UPnP的用户如何手动为您的游戏设置端口。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24444424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档