flash java socket_java与Flash的Socket通讯

本文介绍了一段使用Java与Flash的AMF Server进行Socket通信的示例代码,展示了如何在服务器端处理连接请求,解析消息头并响应客户端。通过创建ServerThread线程处理客户端数据,实现实时双向通信。
摘要由CSDN通过智能技术生成

Flash与JAVA的Socket通信 import java.io.*; import java.net.*; public class AMFServer { public void start()throws Exception{   String xml="";   xml+="";   xml+="";   xml+="";     ServerSocket serverSocket=new ServerSocket(5000);   System.out.println("等待用户连接````````");   while(true){    try{     Socket socket=serverSocket.accept();     System.out.println("连接成功```````");     BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));     PrintWriter pw=new PrintWriter(socket.getOutputStream());         char[] by=new char[22];     br.read(by,0,22);     String head=new String(by);     System.out.println("消息头是:"+head+";");     if(head.equals("")){      pw.write(xml+"/0");      pw.flush();     }else{      ServerThread thread=new ServerThread(socket);      thread.start();     }        }catch(Exception e){     System.out.println("服务器发生异常");    }   } } public static void main(String[] args) {   try{    new AMFServer().start();   }catch(Exception e){    System.out.println("Socket发生异常:"+e);   } } } import java.net.Socket; import java.io.BufferedReader; import java.io.PrintWriter; import java.io.InputStreamReader; public class ServerThread extends Thread{ private Socket socket; private BufferedReader input; private PrintWriter output; public ServerThread(Socket socket){   this.socket=socket; } public void run(){   System.out.println("---------------启动一个线程-----------------");   try{    input=new BufferedReader(new InputStreamReader(socket.getInputStream()));    output=new PrintWriter(socket.getOutputStream());    while(true){     String msg=input.readLine();     if(msg==null){      break;     }     System.out.println("收到客户端的数据:"+msg);     output.print("服务器返回:"+msg+"/0");     output.flush();    }    System.out.println("子线程结束了");   }catch(Exception e){    System.out.println("子线程发生异常");    try{     input.close();     output.close();    }catch(Exception ex){     System.out.println("关闭资源发生异常");    }    System.out.println("子线程结束了");   } } } package org.Eden.net { import flash.display.Sprite; import flash.events.DataEvent; import flash.events.*; import flash.net.XMLSocket; import flash.system.Security; import flash.system.System; public class EdenSockets extends Sprite{ private var socket:XMLSocket;   public function EdenSockets()   {    System.useCodePage = true;    socket = new XMLSocket();    socket.addEventListener( Event.CONNECT, onConnect );    socket.addEventListener( IOErrorEvent.IO_ERROR , failConnect );    socket.addEventListener( DataEvent.DATA, onDatas );    sendBtn.addEventListener(MouseEvent.MOUSE_DOWN,sendEvent);    socket.connect("127.0.0.1", 5000);   }   public function onConnect(myStatus:Event):void   {    msgText.text = msgText.text + "连接成功/n";    //立即发送成功 信息到服务器    socket.send("/n");   }   public function failConnect(myStatus:IOErrorEvent):void   {    msgText.text = msgText.text + "连接失败/n";   }   public function onDatas(event:DataEvent):void   {    if(event.data != null)    {     msgText.text = msgText.text + event.data + "/n";    }   }   public function sendEvent(event:MouseEvent):void   {    socket.send(speakText.text + "/n");    speakText.text = "";   } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值