flex得到安全策略文件后不发送socket请求,要发送两次

zhaocunlide 2009-08-21 09:00:02
flex得到安全策略文件后不发送socket请求,要发送两次才能请求到服务器,第一次是得到安全策略文件,第二次发送socket请求才能请求道服务端的socket,
服务器启动代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
import com.guiyuan.server.Server;

/**
* main函数,开启服务器
* @author 桂圆
*
*/
public class Main {
/**
* 获取客户端请求参数头
* 进行跨域访问判断
*/
BufferedReader reader;
BufferedWriter writer;
public static void main(String args[]) {
String xml="<cross-domain-policy>\n"
+ "<site-control permitted-cross-domain-policies=\"all\"/>\n"
+ "<allow-access-from domain=\"*\" to-ports=\"*\" />\n"
+ "</cross-domain-policy>\n";
ServerSocket serverSocket;
Socket socket;
try {
serverSocket = new ServerSocket(1119);
// 获取服务器的主机名和IP地址
InetAddress address = InetAddress.getLocalHost();
while (true) {
// 监听并接受客户的请求
socket = serverSocket.accept();
//跨域访问设置
PrintWriter printWriter=null;
char[] c = new char[22];// 创建一个22位的 char 数组
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
printWriter = new PrintWriter(socket.getOutputStream());
bufferedReader.read(c, 0, 22);// 为跨域访问的消息头创建char数组,并进行截取
} catch (IOException e) {
e.printStackTrace();
}
// 进行跨域访问的判断
if (new String(c).equals("<policy-file-request/>")) {
System.out.println("xml 安全策略");
printWriter.write(xml + "\0");
//printWriter.flush();
} else{
System.out.println(socket.getPort());
new Server(socket).start(); // 支持多线程
}
}
}catch (IOException e) {
fail(e, "不能监听!");
}
}
/**
* 退出服务器
*
* @param e
* 异常
* @param str
* 退出信息
*/
public static void fail(Exception e, String str) {
System.out.println(str + " 。" + e);
}

/**
* 启动服务器
*/


}
...全文
283 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaocunlide 2009-08-21
  • 打赏
  • 举报
回复
我想问 怎样设计 才能前台 发送一次请求就能请求到服务器?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧