首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

FLEX利用Socket与java进展通信

2012-12-21 
FLEX利用Socket与java进行通信客户端代码:?xml version1.0 encodingutf-8?s:Application xmlns:f

FLEX利用Socket与java进行通信

客户端代码:

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="initApp();"><s:layout><s:BasicLayout/></s:layout><fx:Script><![CDATA[import flash.net.Socket;import flash.utils.ByteArray;private var socket:Socket=new Socket();//定义Socket,准备好情书的信封//初始化程序internal function initApp():void{socket.connect("localhost",719);//连接服务器socket.addEventListener(Event.CONNECT,funConnect);//监听是否连接socket.addEventListener(Event.CLOSE,funClose);//监听连接关闭}internal function funConnect(event:Event):void{loveText.text+="连接已建立 \n";}internal function funClose(event:Event):void{loveText.text+="连接已关闭"}internal function sendMessage(msg:String):void{//发送数据对应按钮click事件var message:ByteArray=new ByteArray();//新建一个ByteArray存放数据message.writeUTFBytes(msg+"\r\n");//写入数据,writeUTFBytes方法,以utf-8格式转换数据避免出现中文乱码socket.writeBytes(message);//写入Socket缓冲区socket.flush();//调用flush方法发送信息loveText.text+=msg+"\r\n";//在客户端屏幕上输出发送的内容loveInput.text="";//清空发言框}]]></fx:Script><mx:TextArea x="10" y="10" width="703" height="263" id="loveText"/><mx:TextInput x="10" y="297" width="605" id="loveInput"/><mx:Button x="648" y="297" label="发送情书" id="sendBtn" click="sendMessage(loveInput.text)"/><fx:Declarations><!-- 将非可视元素(例如服务、值对象)放在此处 --></fx:Declarations></s:Application>


服务端JAVA代码:

package com.feng;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class HelloSocket {private BufferedReader reader;//负责输入private ServerSocket server;//服务器套接字private Socket socket;//套接字public HelloSocket(){}//默认构造函数void startServer()//启动服务器{try{server = new ServerSocket(719);//创建服务器套接字System.out.println("服务器套接字创建完毕");while(true){System.out.println("等待客户端Messages");socket=server.accept();//若客户端Message提出连接请求,与Socket连接System.out.println("完成与客户端的连接");reader=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));//获得socket输入流,"utf-8"这个编码设置是为了更好显示中文getMessage();//读取来自客户端的数据,并输出至画面上}}catch (Exception e) {System.out.println(e);}finally{try{if(server != null)server.close();//关闭服务器套接字}catch (Exception e) {// TODO: handle exception}}}void getMessage()//读取来自套接字的消息{try{while(true)//循环{System.out.println("客户端Message说:"+reader.readLine());}}catch (Exception e) {// TODO: handle exception}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){HelloSocket server = new HelloSocket();server.startServer();}}


客户端效果图:

FLEX利用Socket与java进展通信

服务端效果图:

 FLEX利用Socket与java进展通信

热点排行