`
陈新杰
  • 浏览: 107751 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

flex与java之间socket通信的教程2

    博客分类:
  • flex
阅读更多

二)单向通信

目的:客户端向服务端发消息,服务端将消息显示在屏幕上,不给客户端发送任何数据。

服务器将反复进行一下过程。
1 等待客户机连接请求
2 连接客户机
3 在断开客户机连接之前,接收字符串
4 断开客户机连接
5 返回至第一步

获取与客户机连接的套接字的输入流,过程如下。

Socket socket=server.accept();  //返回与客户机连接的套接字
InputStream is=socket.getInputStream();  //获取套接字的InputStream
InputStreamReader isr=new InputStreamReader(is);
BufferedReader reader= new BufferedReader(isr);  //字符串流

服务端代码:Server2.java
=========================================
import java.net.*;
import java.io.*;
public class Server2 {
private BufferedReader reader; //负责输入
private ServerSocket server;   //服务器套接字
private Socket socket;      //套接字
        public Server2(){}  //缺省构造函数
        void startServer()  //启动服务器
        {
                try
                {
                        server=new ServerSocket(8888);    //创建服务器套接字
                        System.out.println("服务器套接字建立完毕");
                        while(true)
                        {
                          System.out.println("等待客户机");
                          socket=server.accept(); //若客户机提出连接请求,与socket连接
                          System.out.println("完成与客户机的连接");
                          //获取socket输入流,“utf-8”这个编码设置是为了更好显示中文
reader=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));                                                               
getMessage();//读取来自客户机的数据,并输出至画面上
                        }
                }catch(Exception e)
                {
                        System.out.println(e);
                }
        }
        void getMessage()  //读取来自套接字的信息
        {
                try
                {
                        while(true)    //循环
                        {
                                System.out.println("客户机:"+reader.readLine());
                        }
                }catch(Exception e){}
                finally{
                        System.out.println("客户机中断连接");
                        try
                        {
                                if(reader!=null) reader.close(); //关闭套接字的输入流
                                if(socket!=null) socket.close();  //关闭套接字
                                reader=null;
                                socket=null;
                        }catch(Exception e){}
                }
        }
        public  static void main(String[] args)
        {
                Server2 server=new Server2();
                server.startServer();
        }

}
======================================


客户端代码:Client2.mxml
==================================================================================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" creationComplete="initApp()">
<mx:Script>
        <![CDATA[
                import flash.net.Socket; //导入类包
                import flash.utils.ByteArray;  //ByteArray用来在读取数据的时候使用
                private var socket:Socket=new Socket(); //定义Socket
                //初始化程序
                internal function initApp():void
                {
                        socket.connect("127.0.0.1",8888); //连接服务器
                        socket.addEventListener(Event.CONNECT,funConnect); //监听是否连接
                        socket.addEventListener(Event.CLOSE,funClose); //监听连接关闭
                }
                internal function funConnect(event:Event):void
                {
                        myText.text+="连接已建立 ";
                }
                internal function funClose(event:Event):void
                {
                        myText.text+="连接已关闭 ";
                }
                internal function sendMessage(msg:String):void//发送数据对应按钮click事件
                {
                        var message:ByteArray=new ByteArray();//新建一个ByteArray存放数据
                        //写入数据,writeUTFBytes方法,以utf-8格式传数据避免中文乱码
message.writeUTFBytes(msg +" ");       
socket.writeBytes(message);  //写入Socket的缓冲区
                        socket.flush();  //调用flush方法发送信息
                        myText.text+=msg+" ";  //在客户端屏幕上输出发送的内容
                        myInput.text="";  //清空发言框
                }
        ]]>
</mx:Script>
        <mx:TextArea x="10" y="10" width="703" height="263" id="myText"/>
        <mx:TextInput x="10" y="297" width="605" id="myInput"/>
        <mx:Button x="648" y="297" label="发送" id="myBtn" click="sendMessage(myInput.text)"/>
       
</mx:Application>
=======================================

分享到:
评论

相关推荐

    flex与JAVA的SOCKET通信

    flex与JAVA的SOCKET通信,详细讲解flex与JAVA的SOCKET通信

    FLEX与JAVA通过SOCKET通信

    标题 "FLEX与JAVA通过SOCKET通信" 涉及的是在客户端与服务器之间使用FLEX(Adobe Flex)和JAVA进行Socket通信的技术。Flex是一种开源的、基于MXML和ActionScript的开发框架,用于构建富互联网应用程序(RIA)。Java...

    Flex和java的socket通信

    ### Flex和Java的Socket通信详解 #### 一、引言 在互联网应用开发中,不同技术栈之间的通信是非常重要的一个环节。本篇文章将详细介绍如何利用...希望本文能够帮助您更好地理解和掌握Flex与Java的Socket通信技术。

    flex与java采用socket方式通信

    在Flex与Java之间,Socket通信提供了低级别的网络连接,使得前端能够实时地发送和接收数据。 以下是关于Flex与Java Socket通信的一些关键知识点: 1. **Socket API**:Java的Socket类和ServerSocket类是实现TCP/IP...

    flex+java的socket通信

    ### Flex + Java 的 Socket 通信知识点解析 #### 一、概览 在现代软件开发中,前后端分离架构越来越受到青睐。在这种模式下,前端负责用户界面和用户体验,而后端则处理业务逻辑和数据管理。Flex 和 Java 分别作为...

    Flex与Java Socket通信

    Flex与Java Socket通信是Web应用程序开发中的一个重要技术,它允许客户端和服务器之间进行实时、双向的数据交换。在本文中,我们将深入探讨如何实现Flex客户端与Java服务器之间的Socket通信。 首先,确保你拥有以下...

    Flex和java的socket通信.chm

    Flex和java的socket通信 连接 单向通信 多客户通信 一个简单的聊天室

    flex与java通信

    Socket通信是一种低级别的网络通信机制,允许应用程序之间直接建立TCP/IP连接,进行高效的数据传输。 以下是Flex与Java通信的关键知识点: 1. **ActionScript与Java的交互**:在Flex中,通常使用AMF(Action ...

    flex与socket之间的通信

    在实现Flex与Socket通信时,开发者需要注意错误处理,例如网络中断、服务器崩溃等情况。同时,为了保护用户隐私和数据安全,还需要考虑加密传输和身份验证机制。此外,性能优化也是重要的一环,例如通过缓存和批量...

    flex+java+tomcat实现socket通信及安全策略

    2.重点解决安全策略问题:将flash发布为html格式后,本地访问页面后,一般可以与服务器进行socket通信;但是部署到tomcat服务器上后无法通信,这是因为flex安全策略引起的;需要在java服务端开通843权限策略,具体看...

    Flex+Java+Socket 实例源码 聊天室

    7. **学习与实践**:对于初学者,分析和运行这个项目可以帮助理解Flex和Java之间的通信机制,以及如何利用Socket实现实时数据交换。同时,也可以了解到如何在Eclipse中管理和部署这样的项目。 总之,Flex+Java+...

    Flex_AS3与Java的Socket通信

    在本文中,我们将深入探讨Flex AS3与Java的Socket通信技术,这是一种允许Web应用程序(如Flash游戏)与服务器进行低级数据传输的方法。Flex AS3是Adobe开发的ActionScript 3.0编程语言的一个框架,它提供了丰富的...

    flex Socket 通信

    Flex Socket通信是Adobe Flex应用程序与Java应用程序之间进行低级网络通信的一种方式。Flex是一种基于ActionScript的开源框架,主要用于创建富互联网应用(RIA),而Java则是一种广泛使用的多平台编程语言,尤其在...

    flex与java通讯,URL,HTTPService,Socket

    Flex与Java之间的通信是开发跨平台应用程序时的关键技术,它允许客户端(通常为Flex应用程序)与服务器端(通常是Java应用程序)进行数据交换。本篇将深入探讨几种主要的通信方式:URLLoader,HTTPService和Socket。...

    flex与JAVA三种交互方式的源代码与视频教程

    Flex与Java之间的交互是开发富互联网应用程序(RIA)时经常遇到的技术问题。Flex作为一个强大的前端展示层技术,常用于创建动态、交互式的用户界面,而Java则在后端处理业务逻辑和数据管理。本教程将深入探讨Flex与...

    Flex_Java.rar

    4. ** Java Socket通信 **:虽然不太常见,但也可以通过建立Socket连接实现Flex与Java的低级通信,这种方式适用于需要实时双向通信的场景,如游戏或聊天应用。 5. ** 第三方库 **:还有许多第三方库如GraniteDS和...

    FLEX 与现有开发语言的通信全面解析

    一、Flex与Java的通信:Flex与Java之间的通信主要依赖于AMF(Action Message Format)协议。AMF是一种二进制格式,能高效地传输数据,常用于Flex与Java服务器之间。通过 BlazeDS 或 LCDS(LiveCycle Data Services)...

    flex java socket 文字聊天

    Flex Java Socket文字聊天是一种基于Adobe Flex前端技术和Java后端Socket通信技术实现的实时文本聊天应用。这个应用允许用户通过网络进行双向通信,提供了一个简单但功能完备的平台,让用户能够发送和接收即时消息。...

    Flex和java socket聊天源码

    Flex和Java Socket聊天源码是实现在线实时通信的一种技术结合,主要涉及的技术点包括Flex前端开发、Java后端Socket编程以及图文混排和表情支持。下面将详细解释这些知识点。 1. Flex:Flex是由Adobe公司开发的一套...

Global site tag (gtag.js) - Google Analytics