`

Java-Flex通信

阅读更多
   背景:在内网访问演示中心的系统结果不能登录进系统,然而此时登录界面也没有能够给出任何提示信息,这样子使系统显得有点不够友好。关于局域网内不能访问演示中心是因为内网屏蔽了Post的访问方式。

--——————系统技术构成——————————
   Java+Flex+BlazeDs, FLex框架:Mate
   问题:如何在用户不能登录进系统时给出友好的提示?

摸索过程如下:
1、考虑在登录界面xxx.mxml中判断网络连同状况 
  if(网络连接失败)  :  友好提示
谷姐了一番,发现无一例外的都是AIR的例子,大体做法如下:
  socketMonitor = new SocketMonitor('www.adobe.com',6667);
       socketMonitor.addEventListener(StatusEvent.STATUS, socketStatusChange);
       socketMonitor.start();

或者:
  monitor = new URLMonitor(new URLRequest('http://www.adobe.com'));
       monitor.addEventListener(StatusEvent.STATUS, announceStatus);
       monitor.start();
或者:
var req:URLRequest = new URLRequest( "http://www.adobe.com" );
req.method = URLRequestMethod.HEAD; 
monitor = new URLMonitor( req );
onitor.addEventListener( StatusEvent.STATUS, statusHandler );
monitor.start();

参照着这个思路,使用Flex中的URLRequest和URLLoader,想根据URLLoader的load方法的返回值来判断网络是否连通。
尝试未果于是反思:Flex为什么不提供类似AIR下判断连通状态的API?
想了一下觉得FLex而非AIR本身就是用于web的,不联网的话就没意义了(如此理解正确与否尚待商榷... ...),再深入发现自己的思路本身就是错误的,如果能够在login.mxml中才判断那前提条件便是能够访问项目所在的服务器,否则根本就不可能出现登录界面。
汗... ... 弄清楚真正的问题是什么很重要... ...

2、 悬崖勒马(我嚓个去呢,这个貌似也T夸张了点...)  
    使用Socket方式判断是否可以连接
由于之前在java部分做过socket的局域网练习因此这个倒也不难,大体做法如下:
服务器端(也即Java端):
ServerSocket server = new ServerSocket(port);
while(true){调用server.accept();//accept是个阻塞方法}

客户端(也即FLex端)
Socket client = new Socket();//如果构造函数指定了ip与Port就不需在connect了
client.connect(serverIp,port);
client.addEventListener(Event.CONNECT,funcConnect);
//当然还有close等事件

可以将checkLogin的方法写入funcConnect中,这种思路是没什么问题的,然而现在的问题是我如何将这种Socket方式集成进项目中呢?
    欲知后事,请待下回分解... ...

——————————候补学习——————————————
socket:套接字,用于描述IP地址和端口,是一个通信链的句柄
   形象类比: 电话机
每一个socket用一个半相关描述:
  (协议,本地地址,本地端口) 一个完整的socket有一个本地唯一的socket号,由操作系统分配。
socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket 半相关为全局所公认非常重要。

***********Socket 接口***********
Socket 接口是访问 Internet 使用的最广泛的方法
***********socket原理************
"多孔插座"
***********Java中重要的Socket API************
Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。
  getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。
  getOutputStream方法连接的另一端将得到输入,同时返回一个 OutputStream对象实例。注意:其中getInputStream和getOutputStream方法均可能会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。


##############如何开发一个Server-Client模型的程序###################
网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。

&&&&&&&&&&常见的Socket类型&&&&&&&&&&&&&
    流式: Socket_Stream  TCP
数据报式: Socket_Dgram   UDP

实际上"建立一个Socket"意味着为一个Socket数据结构分配存储空间
两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。

名词解释:
AF_INET(互联网协议族:TCP/IP): Address Family Internet
AF 表示ADDRESS FAMILY 地址族
  PF 表示PROTOCOL FAMILY 协议族

AMF(Action Message Format)是在Flex和Flash中remoting的一种方式格式
基于Http协议,

它的内容处理过程大致是这样:
  1.从客户端获取Http请求(Request)流.
  2.对流进行解串行化(Deserialize),得到服务器端程序能够识别的数据,并建立一个响应(Response)消息
  3.Debug开始
  4. 对流进行各种处理(记录、许可、服务)得到返回值
  5.对响应流进行串行化
  6.发送Http响应给客户端

———————————Flex Java Socket交互——————————————————————
http://space.flash8.net/bbs/viewthread.php?tid=349661&page=1&extra=page%3D1

Flex BlazeDs学习
分享到:
评论

相关推荐

    java-flex-mysql

    Flex应用程序通过AMF(Action Message Format)与Java后端进行通信,这是一种高效的数据交换格式,能快速传输列表数据。 **MySQL** 是一个流行的开源关系型数据库管理系统,以其高效、稳定和易用著称。在这个系统中...

    flex框架 JAVA-FLEX

    6. ** BlazeDS**:BlazeDS是Adobe提供的一个免费的服务器端组件,它允许Flex客户端与Java应用程序进行通信。通过使用AMF(Action Message Format)协议,BlazeDS能高效地传输数据,提高性能。 7. **Java后端集成**...

    java-flex-webroot配置文件和JAVA包

    在将Java与Flex结合使用时,"webroot"配置文件扮演着至关重要的角色,它定义了应用程序的部署结构和通信方式。 Java的webroot通常指的是Web应用的根目录,这个目录包含了Web应用的所有公共资源,如HTML、CSS、...

    spring-flex-1.5.0.M2-dist.zip

    4. **SBI(Spring BlazeDS Integration)**:这是Spring Flex的一个重要组成部分,它提供了与Adobe BlazeDS的集成,BlazeDS是Adobe提供的一个免费服务器端套件,用于在Flex和Java应用之间传递数据。 5. **Flex构建...

    使用BlazeDS实现Java和Flex通信

    BlazeDS 是 Adobe 开发的一款开源项目,它提供了一种方式让 Java 后端应用程序与 Adobe Flex 前端应用程序之间进行数据交换和远程通信。BlazeDS 的核心功能包括远程控制(Remoting)和消息传递(Messaging),使得 ...

    slf4fx java-flex日志框架

    1. **双向通信**:SLF4FX支持从Flex客户端向Java服务器发送日志信息,同时也可以接收服务器端的日志数据,实现了双向的日志记录。 2. **异步处理**:考虑到网络延迟,SLF4FX通常会异步处理日志,避免阻塞用户界面。 ...

    Java-Flex-air

    BlazeDS是一个强大的服务器端Java框架,主要用于支持Flex和AIR客户端与后端Java服务之间的通信。它主要提供以下几种服务: - **RemotingService**:提供了一种客户端直接调用服务器端Java方法的方式。这种方式使得...

    java+flex通信源码

    这个"java+flex通信源码"项目提供了一个实际的、完整的示例,演示了如何利用BlazeDS技术实现Java后端与Flex前端的无缝交互。下面我们将深入探讨相关的知识点。 首先,Flex是一种基于ActionScript的开放源代码框架,...

    spring-flex集成-demo

    3. **Spring-BlazeDS Integration**:在Spring Flex项目中,通常会使用BlazeDS作为中间件,它是一个免费的数据和消息传递服务器,允许Flex客户端与Spring应用服务器进行通信。BlazeDS提供了Remoting和 Messaging服务...

    flex与java通信

    Flex和Java之间的通信是Web应用程序开发中的一个重要环节,它允许前端用户界面(UI)与后端服务器进行数据交互。Flex是一种基于Adobe Flash Player或Adobe AIR运行时的富互联网应用程序(RIA)开发框架,而Java则是...

    Flex-Java-file-upload.zip_flex

    描述中提到,这个教程旨在教给初学者如何使用Flex实现简单的文件上传功能,并与Java服务器进行通信。这通常涉及到客户端的Flex应用如何通过HTTP或HTTPS协议发送文件到服务器,以及Java后端如何接收和处理这些文件。 ...

    Flex-Java通信

    Flex-Java通信是将Adobe Flex技术与Java平台相结合,以构建富网络应用(Rich Internet Applications,简称RIA)的一种技术方案。RIA是互联网应用程序的新形态,它弥补了传统C/S(客户端-服务器)和B/S(浏览器-...

    最简单的java与flex通信实例与完全步骤总结

    本篇文章将详细介绍一个最简单的Java与Flex通信的实例,并提供完整的实现步骤。 1. **Flex简介**: Flex是Adobe公司推出的一种基于ActionScript的开源框架,用于创建富互联网应用程序(RIA)。它使用MXML和...

    Flex通信-Java服务端通信实例

    Flex通信-Java服务端通信实例主要探讨的是在Web开发中,如何使用Adobe Flex与Java后端进行交互。Flex是一款强大的富互联网应用程序(RIA)开发工具,它可以创建动态、交互式的用户界面,而Java则通常作为服务器端的...

    spring-flex官方文档

    BlazeDS是Adobe开源的一个项目,它提供了将Flex前端与Java后端服务连接的基础通信层,包括远程调用和消息传递功能。虽然之前也可以通过BlazeDS与Spring管理的服务进行交互,但Spring BlazeDS Integration提供了一个...

    Flex与Java实现通信

    ### Flex与Java实现通信——使用BlazeDS技术详解 #### 一、引言 随着互联网技术的不断发展,前端与后端之间的数据交换变得越来越频繁。Adobe Flex作为一种强大的RIA(Rich Internet Applications)技术,广泛应用...

    Java_Flex,Java_Flex,Java_Flex

    1. BlazeDS:BlazeDS是Adobe官方提供的一个免费的中间件,它允许Java服务器与Flex客户端之间进行实时双向通信。BlazeDS支持AMF(Action Message Format)协议,这是一种高效的二进制数据格式,能大幅减少网络传输...

    flexjava-sockete.rar

    "flexjava-sockete.rar"中的内容可能包含了关于FlexJava如何使用Socket进行网络通信的详细教程。下面将深入探讨Java Socket编程的基本概念、原理及其实现方式。 1. **Socket基础** - Socket是网络通信中的一个抽象...

    java与flex通信

    Java与Flex通信主要依赖于Adobe的BlazeDS技术,它提供了一个基于HTTP的实时双向通信框架,使得ActionScript(Flex的编程语言)可以与后端的Java服务进行数据交互。以下将详细介绍如何实现这一通信过程。 1. **...

    java连接flex代码

    Java连接Flex是一种技术,用于在Java后端与Flex前端之间建立通信。Flex是一种基于Adobe Flash Player或Adobe AIR运行时的富互联网应用程序(RIA)开发框架,而Java则是一种广泛使用的后端开发语言。SSH(Spring、...

Global site tag (gtag.js) - Google Analytics