java与Flash的Socket通讯

Flash与JAVA的Socket通信

import java.io.*;
import java.net.*;
public class AMFServer {
public void start()throws Exception{
  String xml="<cross-domain-policy>";
  xml+="<allow-access-from domain=/"127.0.0.1/"to-ports=/"5000,8000/">";
  xml+="<allow-access-from domain=/"localhost/"to-ports=/"5000,8000/">";
  xml+="</cross-domain-policy>";
 
  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("<policy-file-request/>")){
     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("<policy-file-xxquest/>/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 = "";
  }
}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值