<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22,comments - 35,trackbacks - 0
    簡介:
        實時網絡游戲也屬于大型應用程序范疇,一個關鍵環節就是建立實時主動通信環境,在此Socekt API就成為了首選。通過調用XMLSocket方法,FLASH就可以和一些由強大語言編寫的服務器應用程序進行通信,進而開發出各種實時信息交流系統......

    本文分兩部分:FLASH編程 和 Java編程,此文記錄的僅僅是我在探索中的一些收獲,其中用了很多個人化的描述語言,并不是業界標準的用語。 :)

    探索筆記:

    目前國內Flash應用大部分還是在制作精美的動畫方面,但據我了解早在Flash4 的時代,國外一些人就已經開始將flash技術運用于開發動態網站(和php、asp、jsp結合)和開發應用程序(象網絡游戲、遠程管理等應用軟件)的項目中了。而直到今日,這方面在國內發展還是比較緩慢(有一部分原因是少數人掌握了關鍵技術,但不愿意共享出來)。因此,我將致力于推動國內flash技術在開發動態網站和開發應用程序方面的發展,并將自己親手寫的代碼公布到網絡中,以便于大家共享、交流。

    涉及到的知識范疇:

    1. socket概念
    2. java編程語言
    3. Flash MX ActionScript中的XMLSocket

    實時網絡游戲也屬于大型應用程序范疇,一個關鍵環節就是建立實時主動通信環境(相對的,有個稱為被動通。信的方式,最好的例子就是你正在用IE瀏覽器瀏覽一個網站,此時瀏覽器和服務器之間就是被動通信方式:如果你不點擊一個連接,發送一個WEB頁面請求到WEB服務器,WEB服務器是不會主動向你的瀏覽器發送任何頁面的)。在此Socekt API就成為了首選。限于篇幅,這里不再過多解釋socket的含義,只希望大家能記住一點,只要建立能夠實時通信的應用程序就需要建立socket連接。

    【客戶端FLASH編程部分】

    從mx自帶的as字典中可以看出,Flash在網絡通信方面得到了非常大的加強。"The XMLSocket object is useful for client-server applications that require low latency, such as real-time chat systems"注意最后的一小段話:such as real-time chat systems(譯文:例如實時聊天系統)

    通過調用XMLSocket方法FLASH就可以和一些由強大語言編寫的服務器應用程序進行通信,進而開發出各種實時信息交流系統。所以我們的目標鎖定在XMLSocket!

    另外值得注意的是:有很多人一看到XMLSocket前面的XML三個字母,就覺得頭疼,以為必須先熟悉甚至精通XML才能使用這個對象及其方法,但我要說的是在你不太了解XML的階段,只要把XML信息看成是一個隨意長度(>0)的字符串,把XMLSocket看成是一個只是用來發送字符串數據的對象就好辦多了。

    我們還是從分析代碼著手,來跨進開發FLASH實時網絡游戲的大門吧:

    //建立XMLSocket對象
    var mySocket = new XMLSocket();
    mySocket.connect("127.0.0.1",3000);
    //測試建立socket連接是否成功
    mySocket.onConnect = function(success) {
      if(success) {
        trace("connect ok"); 
      } else {
        trace("connect failed");
      }
    }
    //End for 測試是否連接成功 

    成功建立連接后 向服務器端發送一個測試用的字符串,以便服務器端能顯示出信息。

    mySocket.send("this is a testing String !!!");

    FLASH中的程序就先到此,因為是基礎篇,所以不會涉及太多的其他東西,呵呵。

    【服務器端java程序部分】

    import java.io.*;
    import java.net.*;
    public class LocalServer {
      protected int listenPort = 3000;
      public void acceptConnections() {
      try {
        ServerSocket server = new ServerSocket(this.listenPort);
        //在服務器端,我們需要ServerSocket對象以便建立服務,參數是兼聽的端口號
        Socket incomingConnection = null;//創建一個客戶端的Socket變量,以接收從客戶端監聽到的Socket
        handleConnection處理
        System.out.println("Server端正在等待一個socket連接......");
        incomingConnection = server.accept();//調用該 ServerSocket 的 accept()來告訴它開始偵聽
        System.out.println("一個socket客戶端已經連接過來......");
        handleConnection(incomingConnection);
        } catch (BindException e) {
          System.out.println("Unable to bind to port " + listenPort);
          }
      catch (IOException e) {
        System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);
        }
      }
      public void handleConnection(Socket incomingConnection) {
        System.out.println("\r\n正在對此連接進行處理......");
        try {//首先獲取同Socket相關聯的流outputToSocket和InputStream
    //其中outputToSocket是要返回給客戶端Socket的流
    //InputStream是客戶端發來的請求
          otputStream outputToSocket = incomingConnection.getOutputStream();
          InputStream inputFromSocket = incomingConnection.getInputStream();
          BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputFromSocket));
    //首先要將InputStream轉換到BufferedReader中
          String line = null;
          while ((line = streamReader.readLine()) != null) {
            System.out.println(line); 
            //從streamReader中讀出信息,直接輸出到默認輸出設備中(本例中是指dos窗口)
          }
        System.out.println("\r\n\r\n接受信息完畢!");
    //完成之后關閉所有流,注意關閉Socket流的順序
        streamReader.close();
        } catch (Exception e) {
          System.out.println("Error handling a client: " + e);
        }
      }
    //主程序,建立sever實例對象,然后運行對象的acceptConnections()方法
      public static void main(String[] args) {
        LocalServer server = new LocalServer();
        server.acceptConnections();
      }
    }

    java服務端程序就到此為止了,此時已經能夠建立起一個最簡單的C/S結構通信體系。

    在此基礎上再增加適當的東西 就能夠開發出任何應用程序或者網絡游戲。

    posted on 2011-12-06 10:38 kelven 閱讀(270) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 免费成人av电影| 亚洲国产激情一区二区三区| 国产亚洲婷婷香蕉久久精品| A毛片毛片看免费| 亚洲熟妇av一区二区三区漫画| www免费黄色网| 亚洲人成网站在线观看播放| 免费观看成人久久网免费观看| 亚洲第一精品福利| 亚洲三级在线免费观看| 国产精品亚洲精品| 女人张腿给男人桶视频免费版| 日韩国产欧美亚洲v片| 国产亚洲AV夜间福利香蕉149| 中文字幕成人免费高清在线 | 亚洲乱码一二三四区国产| 女人18毛片a级毛片免费| 亚洲成av人片在线天堂无| 亚洲国产成人影院播放| 特级做A爰片毛片免费看无码| 精品日韩亚洲AV无码一区二区三区 | 精品亚洲aⅴ在线观看| 在线天堂免费观看.WWW| 国产亚洲蜜芽精品久久| 亚洲av午夜国产精品无码中文字| 国产成人无码免费视频97| 中文在线观看永久免费| 久久99亚洲网美利坚合众国 | 亚洲av永久无码精品秋霞电影秋| 亚洲A丁香五香天堂网| 免费观看一区二区三区| 亚洲毛片基地4455ww| 天堂亚洲免费视频| 毛片无码免费无码播放| 亚洲av日韩综合一区二区三区| 久久精品国产精品亚洲艾草网美妙 | 四虎影视精品永久免费网站| 久久久久免费看黄a级试看| 亚洲色偷精品一区二区三区| 久久久亚洲精品蜜桃臀| 搡女人免费视频大全|