论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

Flash P2P 通信技巧(AS-Java-AS)

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:13:09


众所周知Flash的功能比较强大,但是有两个功能到目前为止始终无法实现

  1. 是swf的点对点连接
  2. 是swf读写操作文件

别想了,靠Flash本身是不可能的,虽然有传说中的MMSave();等一些隐藏函数,但是毕竟这些未公开的函数了解的人并不多,用起来也不方便。
那么究竟有没有其他办法可以扶助实现呢?答案当然是肯定的。在这里我们需要请出当前最热的两门名副其实的编程语言C++/Java,靠他们来实现你要实现的功能吧。

在这里我用Java举例。

首先我们必须了解 AS如何让Java做事?对于双方来讲唯一应用性最高的途径就是Socket了。
AS1->XMLSocket->send()->Java.Socket->InputStream
AS2->XMLSocket->send()->Java.Socket->InputStream
AS3->Socket->writh()->flush()->Java.Socket->InputStream
as1&2只支持以字符串形式发送socket,而as3支持真正意义上的流,在这里为了兼容和教学简单,我均以字符串形式来实现相互间的通信。

1->AS与Java最基本的通信

1.1 简单Java服务器

首先我们来做最简单的单线程Java服务器

import java.io.*;
import java.net.*;
public class Server extends ServerSocket{
    //服务端口号常量(as要求必须大于1024,小于65535)
    private static final int SERVER_PORT = 10086;
    //申明流的空间
    private Socket client;
    private BufferedReader in;
    private PrintWriter out;
    private String src;
    //构造函数
    public Server() throws IOException{
        super(SERVER_PORT);
        //监听连接,初始流在进来后读取前,和写入后发送前所存放的空间
        Socket socket = accept();
        in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        out = new PrintWriter(client.getOutputStream(),true);
        //循环等待读取信息
        while(true){
            //读取行信息,注意是以换行符结束的
            src = in.readLine();
            //如果发送"close",就跳出循环(断开连接)
            if(src.equals("close")){
                break;
            }
            //在收到的信息前加是标识并发回(注意结尾加"\0",这是as的XMLSocket读入每条信息的条件.as3的Socket不需要)
            out.println("rev: "+src+"\0");
            //以上out.println("xx")相当于out.write("xx");out.flush();的执行效果
            System.out.println("msg is "+src)
        }
        //关闭连接
        close();
    }
       
    //入口函数...
    public static void main (String[] args) throws IOException{
        new Server();   
    }
}

这样一个Java的服务器就建好了,Java是同步的事件的驱动是等待的,这个AS是不同的,所以方法对与as区别还是比较大的,具体功能已经注释的非常清楚。至于具体Java的特性我不是专业的,为了对读者负责我就不做详细介绍了,有兴趣的朋友可以查阅Java相关书籍。
接下来呢就是AS的访问了:

上一篇:{实例}amfPHP工作原理 人气:4790
下一篇:{实例}flash 结合php 生成jpg/png图 人气:3786
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058