flex与java的socket通信_FLEX利用Socket与java进行通信

客户端代码:

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="initApp();">

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="";//清空发言框

}

]]>

服务端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();

}

}

客户端效果图:

0818b9ca8b590ca3270a3433284dd417.png

服务端效果图:

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值