`
ilinker
  • 浏览: 64606 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

[转]Flex与ASP.NET互操作系列1:基于Socket的网络连接

    博客分类:
  • Flex
阅读更多

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端口。示例程序如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Net.Sockets;
 6 using System.IO;
 7
 8 namespace FlashFlexDotNet
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             TcpListener listener;
15
16             try
17             {
18                 listener = new TcpListener(8888);
19             }
20             catch (Exception ex)
21             {
22                 Console.WriteLine(ex.Message);
23                 return;
24             }
25
26             listener.Start();
27             Console.WriteLine("服务器启动,等待客户端连接.");
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                 try
37                 {
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的网络连接:

1 private function connectionServer():void
2 {
3     xmlConn = new XMLSocket();
4     xmlConn.connect("127.0.0.1",8888);
5 }
 

     随后,便可以通过XMLSocket的实例方法send()向Socket服务端发送消息了。如下代码定义:

1     private function onSend():void
2     {
3         xmlConn.send(txtData.text + "\n");
4     }
 

     客户端完整代码:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 3     backgroundGradientAlphas="[1.0, 1.0]"
 4     backgroundGradientColors="[#CDCAE6, #FFFFFF]">
 5     <mx:Script>
 6         <![CDATA[
 7             import mx.controls.Alert;
 8            
 9             private var xmlConn:XMLSocket;
10            
11             private function connectionServer():void
12             {
13                 xmlConn = new XMLSocket();
14                 xmlConn.connect("127.0.0.1",8888);
15             }
16            
17             private function onSend():void
18             {
19                 xmlConn.send(txtData.text + "\n");
20             }
21         ]]>
22     </mx:Script>
23     <mx:TextArea x="43" y="34" height="120" width="263" id="txtData"/>
24     <mx:Button x="93" y="180" label="连 接" fontSize="12" click="connectionServer()"/>
25     <mx:Button x="190" y="180" label="发 送" fontSize="12" click="onSend()"/>
26 </mx:Application>
 

     如下为本文示例程序测试结果图:

    


文章来自学IT网:http://www.xueit.com/html/2009-02/21_571_00.html

分享到:
评论

相关推荐

    源码:Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载

    Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载 一文的源码的完整工程文件,包含FLEX客户端和 ASP.NET服务端源码! 在VS2010和FLash builder4 中运行!

    Flex与.NET互操作.pdf

    Flex与.NET互操作 对初学者很有用

    Flex与.NET互操作基于WebService的数据访问

    Flex与.NET互操作是跨平台应用开发中的一个重要环节,它允许使用Adobe Flex的用户界面技术与微软.NET框架下的服务端逻辑进行数据交换。在这种场景下,WebService作为一种标准的跨平台通信方式,使得Flex客户端能够...

    flex .net互操作

    【Flex .NET 互操作】是指在Adobe Flex应用程序与Microsoft .NET框架之间进行通信和数据交换的技术。在Flex中创建的用户界面可以调用.NET编写的Web服务或直接与.NET应用进行交互,实现数据的加载和传输。这种互操作...

    Flex与.Net互操作

    Flex与.NET互操作是开发跨平台富互联网应用(RIA)时的一个重要技术组合,它允许基于Adobe Flex的前端用户界面与Microsoft.NET后端服务进行高效的数据交换和功能调用。Flex以其强大的图形用户界面和丰富的媒体支持,...

    Flex与ASP.net交互

    【Flex与ASP.NET交互】指的是在开发Web应用时,使用Adobe Flex前端技术和Microsoft ASP.NET后端技术进行数据通信的方式。Flex是一种用于构建富互联网应用程序(RIA)的开发框架,而ASP.NET是.NET Framework的一部分...

    测试flex+asp.net

    标题“测试flex+asp.net”涉及的技术点是Adobe Flex与微软的ASP.NET的结合使用,这是一种混合技术架构,旨在创建富互联网应用程序(RIA)。Flex是一款用于构建用户界面的开源框架,主要基于ActionScript和MXML,而...

    Flex+ASP.NET+Web应用开发实战详解-源代码

    Flex+ASP.NET+Web应用开发实战详解-源代码

    基于WebService的数据访问(下) Flex与.NET互操作(三)

    在上一篇文章《Flex与.NET互操作(二):基于WebService的数据访问(上) 》中介绍了通过标签来访问Webservice。实际上我们也可以通过编程的方式动态的访问WebService,Flex SDK为我们提供了WebService类。

    Flex与ASP.Net通信(FluorineFx)程序例子

    Flex与ASP.NET之间的通信是构建富互联网应用程序(RIA)时常用的一种技术,它允许前端的Flex界面与后端的ASP.NET服务进行数据交互。在这个程序例子中,我们使用了 FluorineFx 框架来实现这种通信。FluorineFx 是一个...

    Flex+ASP.NET Web应用开发实战详解.z01

    Flex+ASP.NET Web应用开发实战详解.z01

    Flex 与 Asp.Net 通过 Remoting 方式进行通讯

    【Flex与Asp.Net通过Remoting方式进行通讯】是一种在客户端使用Flex进行富互联网应用开发,与服务器端基于Asp.Net的应用进行数据交换的技术。Remoting是远程方法调用的简称,它允许Flex客户端直接调用服务器上的.NET...

    ArcGIS Server开发指南--基于Flex和.NET源码.part2

    ArcGIS Server开发指南--基于Flex和.NET源码第二部分

    Flex与ASP.NET通过remoting交互实例

    接下来,可以通过一个具体的示例来展示如何实际操作上述配置步骤,实现Flex与ASP.NET之间的数据交换。例如,可以在.NET端创建一个简单的数据处理类,通过Fluorine将其暴露为远程服务,然后在Flex端通过...

    flex + asp.net web应用开发实战详解 code p2

    《Flex + ASP.NET Web应用开发实战详解 Code P2》是一本深入探讨如何使用Adobe Flex与Microsoft ASP.NET技术相结合,构建高效、交互性强的Web应用程序的书籍。本部分(P2)可能聚焦于实际代码实现和高级功能的应用。...

    Flex 与asp.net 交互

    通过以上步骤,Flex4能够与Asp.net的WebService进行无缝交互,实现跨平台的数据交换和业务逻辑处理。这种模式在开发复杂的Web应用时非常常见,特别是在需要富客户端体验和强大后端功能的场景下。 总结,Flex4与Asp...

Global site tag (gtag.js) - Google Analytics