如何在 Actionscript 3 中接收来自 Socket 的命令?

Posted

技术标签:

【中文标题】如何在 Actionscript 3 中接收来自 Socket 的命令?【英文标题】:How to receive commands from Socket in Actionscript 3? 【发布时间】:2013-06-22 20:03:23 【问题描述】:

我终于设法让服务器正常工作(在玩了 2 天 java lol 之后),所以我可以使用套接字连接它。 但困扰我的是,假设我使用这些套接字将两个客户端都连接到服务器 如何发送命令,例如从一个客户端向另一个客户端发起攻击?

我希望你明白我的意思,哈哈:/ PS:我用java做服务端,as3做客户端

无论如何提前谢谢...

【问题讨论】:

基本上我相信您需要研究 Java 中的线程之间的通信,以便将数据从一个线程传递到另一个线程。 ***.com/questions/2816005/… 当数据被发送到服务器时(除了正在广播的客户端),您需要更新所有客户端以进行一些多人操作。我相信通常使用 UDP 而不是 TCP 是因为它的速度,尽管对于快节奏的多人游戏缺乏可靠性。 好吧,我使用的是 Actionscript 3,而不是 java :/ 在您的问题中听起来您使用的是 AS3 客户端和 Java 服务器端。客户端 (AS3) 需要向服务器 (Java) 发送数据,然后服务器 (Java) 需要将该数据传递给另一个客户端 (AS3)。如果您正在做某种 P2P 客户端的事情,那么您的问题并不清楚。本质上,您需要让 Java 充当数据从一个客户端到另一个客户端的“桥梁”,否则它们无法进行通信。只是为了让您知道 Socket 类在我所知道的移动设备上不受支持,因此如果您想要移动设备,则必须推出自己的 ANE。 不,我正在尝试创建的游戏与移动设备无关 是的,所以我最初说的是在服务器端(Java)你将有两个线程运行(两个客户端),一个处理每个客户端套接字连接,那么你只需要能够在这些线程之间进行通信。如果您需要更多帮助,您必须展示您正在尝试使用的代码,以及将 AS3 套接字连接到 Java 的部分以及相同的 Java 端。 【参考方案1】:

您需要添加 BlazeDS(有点过时)或 GraniteDS(更新,我认为效果更好),我确实认为 BlazeDS 更容易上手。

它们都基于使用 java webservlet 和 actionscripts AMF 格式来允许与 flash/actionscript 客户端通信。

另一种选择是使用某种形式的 C/C++/C# 来实际谈论二进制。如果您想创建自己的协议,这是非常有效的。另一方面,这意味着更多的工作:)。

【讨论】:

以上是关于如何在 Actionscript 3 中接收来自 Socket 的命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 actionscript 3 将 ascii 文件加载到数组中

在Actionscript 3中整数乘法mod2³²

在 actionscript 3 中使用多个或仅一个事件监听器

ActionScript 3 AS3:使用GET请求发送和接收数据

ActionScript 3 来自Google地图的地理位置

ActionScript 3 来自JPG的XMP元数据