Flash与JAVA的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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值