是否可以在 NetConnection 上强制使用源端口?
Posted
技术标签:
【中文标题】是否可以在 NetConnection 上强制使用源端口?【英文标题】:Is it possible to force a source port on a NetConnection? 【发布时间】:2011-07-05 01:35:39 【问题描述】:我是 ActionScript 的新手,但我正在尝试破译一个预先存在的项目并进行一些修改。
我有一段代码首先创建一个新的NetConnection,然后从外部源流式传输媒体文件。我在文档中看到您可以提供目标端口(通过 URL),但是否可以强制 Flash 使用特定的源端口?我在文档中找不到明确的方法来执行此操作,但我很好奇其他人是否有替代方法或想法。
这样做的最终目标是我希望能够以可预测的方式使用源端口来执行NAT Hole Punching。感谢您的任何建议或答案!
【问题讨论】:
【参考方案1】:Flash 不提供对网络调用的这种级别的控制。对不起。
【讨论】:
Adobe AIR 中的情况不同吗?【参考方案2】:我认为您正在寻找隧道 RTMP,它在 HTTP 中包装数据包并使用端口 80。要使用它,只需连接协议“rtmpt”而不是“rtmp”。为此,您的 FMS 服务器应配置为侦听端口 80。
【讨论】:
在我的情况下没有 FMS 服务器,只是与不同地址的 HTTP 通信。【参考方案3】:使用这个语法
connect () method
public function connect(command:String, ... arguments):void
将此语法用作命令参数
protocol:[//host][:port]/appname[/instanceName]
【讨论】:
我认为这不是针对源端口...只是传出端口以上是关于是否可以在 NetConnection 上强制使用源端口?的主要内容,如果未能解决你的问题,请参考以下文章
NetConnection 未处理的 NetStatusEvent
如何通过 http 隧道 Red5 而不会出现 NetConnection.Connect.Closed 错误?
ActionScript 3:Socket、amf、NetConnection、rtmp……越来越清楚
如何通过 Java 解码从 NetConnection.call(methodName, responder, parameter) 发送的消息