[转载]Flex与.NET互操作(一):基于Socket的网络连接
http://www.cnblogs.com/beniao/archive/2009/01/12/1373921.html
Flex与.NET互操作(一):基于Socket的网络连接
Flash/Flex也支持基于Socket的网络连接 ,服务器端可以是C++,VB,C#,Java等任一语言开发。监听一个网络端口便可以接收到Flash/Flex开发的客户端的连接。
ActionScript 3.0提供了通过Socket连接的方式与服务器端通信。这点是超越传统B/S结构的重要特征。这样使得网络通信可以即时连接,避免了HTTP协议无状态连接的弊病。ActionScript 3.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端口。示例程序如下:

."); 28 bool loop =true; 29 30 while (loop) 31 { 32 Socket s = listener.AcceptSocket(); 33 NetworkStream ns =new NetworkStream(s); 34 StreamReader reader =new StreamReader(ns); 35 string result =string.Empty; 36 try37 { 38 result = reader.ReadLine(); 39 Console.WriteLine(result); 40 } 41 catch (Exception ex) 42 { 43 Console.WriteLine(ex.Message); 44 } 45 } 46 } 47 } 48 } 49
服务器端Socket已经准备完毕,下面看看客户端的ActionScript的XMLSocket怎么来建立Socket连接与.net的Socket服务端进行通信。
如本文前介绍,ActionScript 3.0提供了基于Socket的网络连接类XMLSocket,我们可以直接使用它来开发基于Socket的网络通信。如下建立一个基与ActionScript 3.0提供的XMLSocket的网络连接:
随后,便可以通过XMLSocket的实例方法send()向Socket服务端发送消息了。如下代码定义:
客户端完整代码:
如下为本文示例程序测试结果图:


浙公网安备 33010602011771号