是否可以在 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) 发送的消息

为啥没有事件侦听器或引用的封闭 NetConnection 会留在内存中?

是否可以强制 AVPlayer 停止在外部播放视频(在 Apple TV 上)