在actionscript服务器和java客户端之间通过socket发送对象

Posted

技术标签:

【中文标题】在actionscript服务器和java客户端之间通过socket发送对象【英文标题】:object sending through socket between actionscript server and java client 【发布时间】:2014-04-07 11:44:20 【问题描述】:

我在 actionscript 中有一个服务器套接字,在 java 中有一个客户端套接字。我可以将字符串从 java 发送到 actionscript,但我无法通过套接字发送对象。我尝试在 java 中使用 objectOutputstream 和 ObjectInputStream 但在运行时抛出异常像无效的流标头。有没有办法在 java 客户端套接字和 ActionScript 服务器套接字之间交换对象。如果是,请告诉我如何?

【问题讨论】:

可以使用 JSON 吗? 我试图写一个地图。但我没有找到任何类来写对象。当我尝试使用 ObjectOutputstream 时,它抛出异常,正如我在问题中提到的那样 【参考方案1】:

AMF - 有一个内置的 (de)serializator 并且工作起来就像一个魅力。高效快捷。看看吧。

【讨论】:

稍微扩展一下;您希望将 BlazeDS 添加到您的 Java 客户端:sourceforge.net/adobe/blazeds/wiki/Home - 它允许您来回发送 AS/Java 对象;你只需要记得在AS尺寸上调用registerClassAlias @divillysausages 我没有使用任何 Web 服务器来使用 BlazeDs,java 程序是一个通用的 java 类。要使用 BlazeDs,我必须使用 Web 服务器不是吗?如果我错了请纠正我。如果我是正确的,请告诉我将对象从 java 程序发送到 actionscript 程序的其他方法。 @Amar546 您应该能够将 BlazeDS 作为一个库包含在内,就像在您的闪存代码中包含一个 SWC。当您谈论 Web 服务器时,这就是您的 Java 客户端(尽管从技术上讲,它是一个套接字服务器 :))。您可以自行推出,但使用现有的更容易 @Amar546 除此之外,将对象从客户端发送到服务器并没有什么特别之处;反之亦然; BlazeDS 只是自动执行所有序列化等。您可以使用 JSON/XML/您自己的自定义格式,您只需要在两端编写转换器。您需要做的就是知道要在两端创建什么类,并填写传递的属性。您没有传递“对象”,而是传递对象的字节/字符串表示形式,然后在任一端重新创建这些表示形式 如果我理解正确 - divillysausages 正在为您提供某种 Java(反)序列化器,因为 Flash 内置了一个。我不擅长 Java,但据我所知, BlazeDS 是一个常见的解决方案。尝试使用 AMF,您会惊讶于它的强大和快速(查看在线基准测试)。

以上是关于在actionscript服务器和java客户端之间通过socket发送对象的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3:Socket、amf、NetConnection、rtmp……越来越清楚

Android 中的 ActionScript 套接字

ActionScript 3 XMLSocket 的策略文件问题

有关与 .Net 的 ActionScript 套接字通信的帮助

将值从 c# 传递到 actionscript 3 和跨域问题

在 actionscript flash 中创建登录