熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Flex與.NET基於Socket的網絡連接

2013-11-13 10:08:44  來源: .NET編程 

  Flash/Flex也支持基於Socket的網絡連接 服務器端可以是C++VBC#Java等任一語言開發監聽一個網絡端口便可以接收到Flash/Flex開發的客戶端的連接    
     ActionScript 提供了通過Socket連接的方式與服務器端通信這點是超越傳統B/S結構的重要特征這樣使得網絡通信可以即時連接避免了HTTP協議無狀態連接的弊病ActionScript 使用XMLSocket類進行連接需要注意的是使用XMLSocket類進行Socket連接時不能自動穿過防火牆要想穿過防火牆連接則需要使用基於HTTP協議的RTMP協議

  通過查閱Adobe提供的API文檔可以了解到XMLSocket提供了四個公開方法:

  XMLSocket(host:String=nullport:int=)創建一個新的XMLSocket對象

  close():void關閉一個XMLSocket

  connect(host:Stringport:int):void連接到指定的TCP端口

  send(object:*):void將數據發送到連接服務端

  OK了解這些後我們就可以用XMLSocket來開發基於Socket的網絡及時通信應用下面通過C#提供一個Socket的服務端並監聽端口示例程序如下

   using System;
  using SystemCollectionsGeneric;
  using SystemLinq;
  using SystemText;
  using SystemNetSockets;
  using SystemIO;
 
  namespace FlashFlexDotNet
  {
     class Program
     {
         static void Main(string[] args)
         {
             TcpListener listener;

             try
             {
                 listener = new TcpListener();
             }
             catch (Exception ex)
             {
                 ConsoleWriteLine(exMessage);
                 return;
             }

             listenerStart();
             ConsoleWriteLine(服務器啟動等待客戶端連接);
             bool loop = true;

             while (loop)
             {
                 Socket s = listenerAcceptSocket();
                 NetworkStream ns = new NetworkStream(s);
                 StreamReader reader = new StreamReader(ns);
                 string result = stringEmpty;
                 try
                 {
                     result = readerReadLine();
                     ConsoleWriteLine(result);
                 }
                 catch (Exception ex)
                 {
                     ConsoleWriteLine(exMessage);
                 }
             }
         }
     }
}

     服務器端Socket已經准備完畢下面看看客戶端的ActionScript的XMLSocket怎麼來建立Socket連接的Socket服務端進行通信

  如本文前介紹ActionScript 提供了基於Socket的網絡連接類XMLSocket

  我們可以直接使用它來開發基於Socket的網絡通信如下建立一個基與ActionScript 提供的XMLSocket的網絡連接

   private function connectionServer():void
{
     xmlConn = new XMLSocket();
     nnect();
}
     隨後便可以通過XMLSocket的實例方法send()向Socket服務端發送消息了如下代碼定義

       private function onSend():void
     {
         xmlConnsend(txtDatatext + \n);
     }
客戶端完整代碼

   <?xml version= encoding=utf?>
  <mx:Application xmlns:mx= layout=absolute
      backgroundGradientAlphas=[ ]
      backgroundGradientColors=[#CDCAE #FFFFFF]>
      <mx:Script>
          <![CDATA[
              import ntrolsAlert;
             
              private var xmlConn:XMLSocket;
            
             private function connectionServer():void
             {
                 xmlConn = new XMLSocket();
                 nnect();
             }
            
             private function onSend():void
             {
                 xmlConnsend(txtDatatext + \n);
             }
         ]]>
     </mx:Script>
     <mx:TextArea x= y= height= width= id=txtData/>
     <mx:Button x= y= label=連 接 fontSize= click=connectionServer()/>
     <mx:Button x= y= label=發 送 fontSize= click=onSend()/>
<mx:Application>
     如下為本文示例程序測試結果圖


From:http://tw.wingwit.com/Article/program/net/201311/12700.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.