欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

as3 java 交互_求大佬用 Java 实现这段 AS3 的 socket 通讯功能

发布时间:2024/9/19 java 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 as3 java 交互_求大佬用 Java 实现这段 AS3 的 socket 通讯功能 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近在分析一个直播网站,初步分析后发现是在 swf 中用 socket 通讯返回的 flv 地址。

其中 Actionscript socket 通讯的关键代码如下:

this._socket = new Socket();

this._socket.addEventListener(Event.CONNECT,this.onConnect);

this._socket.addEventListener(ProgressEvent.SOCKET_DATA,this.onSocketData);

this._socket.addEventListener(Event.CLOSE,this.handleClose);

this._socket.connect(this._ip,uint(this._port));

private function onConnect(param1:Event) : void

{

var _loc1_:ByteArray = new ByteArray();

_loc1_.endian = Endian.LITTLE_ENDIAN;

_loc1_.writeUnsignedInt(uint(this._sid));

_loc1_.writeUnsignedInt(uint(this._uid));

_loc1_.writeByte(this._needRotation == 0?0:1);

_loc1_.position = 0;

this._socket.writeBytes(_loc1_);

this._socket.flush();

}

private function onSocketData(param1:ProgressEvent) : void

{

if(this._socket.bytesAvailable > 0)

{

_loc5_ = new ByteArray();

this._socket.readBytes(_loc5_);

_loc5_.position = 0;

this._render.put(_loc5_);

}

}

其中几个变量都是在 html 中由 FlashVars,向 swf 传递。

我尝试用 java 写了一下,但是始终得不到返回值。

Socket socket = new Socket("45.255.132.43", 7207);

OutputStream outputStream = socket.getOutputStream();

ByteBuffer bb = ByteBuffer.allocate(16);

bb.order(ByteOrder.LITTLE_ENDIAN);

bb.putLong(2124798641L);

bb.putLong(3452777999L);

bb.put((byte)0);

bb.position(0);

outputStream.write(bb.array());

outputStream.flush();

socket.shutdownOutput();

InputStream is = socket.getInputStream();

System.out.println(is.available());

System.out.println(is.read());

特上 v2 向大佬求救。。。

总结

以上是生活随笔为你收集整理的as3 java 交互_求大佬用 Java 实现这段 AS3 的 socket 通讯功能的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。