关于FLASH与后台通信问题
根据提供的文件信息,我们可以归纳出以下几个关键的知识点: ### 1. Flash Socket 通信机制 在Flash中,`Socket` 类提供了与服务器进行双向通信的能力。这种通信方式通常用于实时应用,例如多人在线游戏、即时通讯等场景。通过 `Socket` 类,Flash 可以发送和接收二进制数据。 ### 2. Socket 类的使用 #### 2.1 创建 Socket 实例 在示例代码中,我们首先创建了一个 `Socket` 对象实例: ```actionscript private var client:Socket = new Socket(); ``` 这个实例将用于与远程服务器建立连接并进行数据交换。 #### 2.2 设置服务器地址和端口 为了连接到服务器,我们需要指定服务器的地址(IP 或域名)和监听的端口号。在代码中,这些信息通过以下变量存储: ```actionscript private var s_path:String = ""; // 服务器地址 private var s_path:uint; // 服务器端口号 ``` 这些值需要在实例化 `clientConnect` 类时传递给构造函数: ```actionscript public function clientConnect(path:String, port:uint) { s_path = path; s_path = port; } ``` #### 2.3 建立连接 建立连接的过程涉及调用 `Socket` 对象的 `connect` 方法,并监听连接事件: ```actionscript public function connected() { try { client.connect(s_path, s_port); } catch (e:ArgumentError) { trace(e); } client.addEventListener(Event.CONNECT, sendData); client.addEventListener(ProgressEvent.SOCKET_DATA, receiveData); } ``` 这里我们为连接成功和接收到数据这两个事件分别注册了事件处理函数 `sendData` 和 `receiveData`。 ### 3. 数据发送与接收 #### 3.1 发送数据 发送数据涉及到设置要发送的数据,并在连接成功后调用 `writeInt` 方法将数据写入连接: ```actionscript public function setData(data_in:uint) { c_data = data_in; } private function sendData(evt:Event):void { client.writeInt(c_data); } ``` 其中,`c_data` 是要发送的数据。 #### 3.2 接收数据 接收数据则是在 `SOCKET_DATA` 事件触发时读取数据: ```actionscript public function getData():uint { if (recived) return returnData; else return null; } private function receiveData(evt:ProgressEvent) { returnData = client.readInt(); recived = true; trace(returnData); client.close(); } ``` 这里我们使用 `readInt` 方法读取服务器发送过来的数据,并将其存储在 `returnData` 变量中。当数据接收完成时,`recived` 变量会被设为 `true`,表示已经收到了数据。 ### 4. Java 服务端实现 #### 4.1 Java ServerSocket 类 Java 的 `ServerSocket` 类用于创建服务器端的监听套接字。服务器端代码如下所示: ```java public class Server { public static void main(String args[]) { while (true) { try { ServerSocket serverSocket = new ServerSocket(1500); // 监听端口 Socket socket = serverSocket.accept(); // 接受客户端连接 // 进行数据处理... } catch (IOException e) { e.printStackTrace(); } } } } ``` 这里创建了一个 `ServerSocket` 对象,并设置了监听端口为 1500。接着,通过调用 `accept` 方法等待客户端连接。一旦有客户端连接,就会返回一个 `Socket` 对象,用于后续的数据处理。 ### 5. 综合应用 结合以上内容,我们可以总结出 Flash 与后台通信的基本流程:首先在客户端创建 `Socket` 实例,然后设置服务器地址和端口并建立连接;接下来发送数据,并监听数据接收事件。而在服务端,则通过 `ServerSocket` 监听指定端口,接受连接并处理数据。 通过使用 Flash 的 `Socket` 类,开发者可以轻松地实现客户端与服务端之间的实时通信。同时,结合 Java 语言的服务端编程,可以构建出高效稳定的实时通信系统。
{
import flash.net.Socket;
import flash.events.Event;
import flash.events.ProgressEvent;
////////////////////////////////////////////////////////////// import some class that have to use for this project
public class clientConnect
{
private var client:Socket = new Socket();// instance of Socket class we will use this instace to connect to demon.
private var s_path:String = "";//variable for set server path .
private var s_port:uint;//variable for set server port .
private var returnData:uint;//variable for store data that client recive form server.
private var c_data:uint;//variable for store data that wee want to sent to server.
private var recived:Boolean=false;//variable for check client recived data yet.
public function clientConnect(path:String,port:uint)//when we define class variable and call this method we must sent serve path and port to this method.
{
s_path=path;
s_port=port;
}
public function connected()//sure this function try to connect to server*-*.
{
try
{
client.connect(s_path,s_port);
}
catch (e:ArgumentError)
{
trace(e);
}
client.addEventListener(Event.CONNECT,sentData);
- 粉丝: 4
- 资源: 22
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助