AS3的Socket 类给我们提供了一个readObject方法和writeObject方法与服务器通讯,可以让我们在协议可读性和传输效率上两个兼顾。如果在网络游戏 开发 前期你无法确定完全规划好你的协议,那么使用这种方法是一个不错的选择。等到一切调试顺畅了,再在此基础上进行事件 类型的抽象。
下面我们利用 Adobe 的开源 项目 BlazeDS中提供的类进行AMF3封装与Flash Socket通讯介绍一下这种方式。
原文和介绍见:http://www.iflash igame .com
服务器端的 代码 AmfServer.java。(根据Weni的代码改的)
- import java.io.BufferedOutputStream;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.ObjectOutputStream;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.HashMap;
- import flex .messaging.io.Se