您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何實現Flex與.NET基于Socket的網絡連接的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Flex與.NET基于Socket的網絡連接
Flash/Flex也支持基于Socket的網絡連接,服務器端可以是C++,VB,C#,Java等任一語言開發。監聽一個網絡端口便可以接收到Flash/Flex開發的客戶端的連接。
ActionScript3.0提供了通過Socket連接的方式與服務器端通信。這點是超越傳統B/S結構的重要特征。這樣使得網絡通信可以即時連接,避免了HTTP協議無狀態連接的弊病。ActionScript3.0使用XMLSocket類進行連接。需要注意的是使用XMLSocket類進行Socket連接時,不能自動穿過防火墻。要想穿過防火墻連接,則需要使用基于HTTP協議的RTMP協議。
通過查閱Adobe提供的API文檔可以了解到,XMLSocket提供了四個公開方法:
1、XMLSocket(host:String=null,port:int=0)--創建一個新的XMLSocket對象。
2、close():void--關閉一個XMLSocket。
3、connect(host:String,port:int):void--連接到指定的TCP端口。
4、send(object:*):void--將數據發送到連接服務端。
OK,了解這些后我們就可以用XMLSocket來開發基于Socket的網絡及時通信應用。下面通過C#提供一個Socket的服務端,并監聽8888端口。示例程序如下:
1usingSystem; 2usingSystem.Collections.Generic; 3usingSystem.Linq; 4usingSystem.Text; 5usingSystem.Net.Sockets; 6usingSystem.IO; 7 8namespaceFlashFlexDotNet 9{ 10classProgram 11{ 12staticvoidMain(string[]args) 13{ 14TcpListenerlistener; 15 16try 17{ 18listener=newTcpListener(8888); 19} 20catch(Exceptionex) 21{ 22Console.WriteLine(ex.Message); 23return; 24} 25 26listener.Start(); 27Console.WriteLine("服務器啟動,等待客戶端連接."); 28boolloop=true; 29 30while(loop) 31{ 32Sockets=listener.AcceptSocket(); 33NetworkStreamns=newNetworkStream(s); 34StreamReaderreader=newStreamReader(ns); 35stringresult=string.Empty; 36try 37{ 38result=reader.ReadLine(); 39Console.WriteLine(result); 40} 41catch(Exceptionex) 42{ 43Console.WriteLine(ex.Message); 44} 45} 46} 47} 48} 49
◆服務器端Socket已經準備完畢,下面看看客戶端的ActionScript的XMLSocket怎么來建立Socket連接與.net的Socket服務端進行通信。
如本文前介紹,ActionScript3.0提供了基于Socket的網絡連接類XMLSocket,
我們可以直接使用它來開發基于Socket的網絡通信。如下建立一個基與ActionScript3.0提供的XMLSocket的網絡連接:
1privatefunctionconnectionServer():void 2{ 3xmlConn=newXMLSocket(); 4xmlConn.connect("127.0.0.1",8888); 5} 隨后,便可以通過XMLSocket的實例方法send()向Socket 服務端發送消息了。如下代碼定義: 1privatefunctiononSend():void 2{ 3xmlConn.send(txtData.text+"\n"); 4}
客戶端完整代碼:
1<?xmlversionxmlversion="1.0"encoding="utf-8"?> 2<mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/ mxml"layout="absolute" 3backgroundGradientAlphas="[1.0,1.0]" 4backgroundGradientColors="[#CDCAE6,#FFFFFF]"> 5<mx:Script> 6<![CDATA[ 7importmx.controls.Alert; 8 9privatevarxmlConn:XMLSocket; 10 11privatefunctionconnectionServer():void 12{ 13xmlConn=newXMLSocket(); 14xmlConn.connect("127.0.0.1",8888); 15} 16 17privatefunctiononSend():void 18{ 19xmlConn.send(txtData.text+"\n"); 20} 21]]> 22</mx:Script> 23<mx:TextAreaxmx:TextAreax="43"y="34"height="120"width="263" id="txtData"/> 24<mx:Buttonxmx:Buttonx="93"y="180"label="連接"fontSize="12"click="connectionServer()"/> 25<mx:Buttonxmx:Buttonx="190"y="180"label="發送"fontSize="12"click="onSend()"/> 26<mx:Application>
感謝各位的閱讀!關于“如何實現Flex與.NET基于Socket的網絡連接”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。