'flex 843 보안정책서버 예제'에 해당되는 글 1건

  1. 2013.12.03 flex 843 보안정책서버 예제
반응형

import java.io.*;
import java.net.*;

/* 843포트에서 대기하는 서버소켓은 클라이언트가 접속하여 정책파일을 요청하면 정책파일의 내용을
 * 출력스트림으로 전송해 주고, 소켓을 닫는다.
 * 액션스크립트 클라이언트(Flex)에서 서버(채팅서버 등)에 접속하기 위해서는 서버가 실행중인 호스트에
 * 이 정책파일서버가 먼저 실행되고 있어야 한다.
 */
public class PolicyServerServlet {

 public static void main(String[] args) throws Exception {
  ServerSocket ss = new ServerSocket(843);
  Socket client = null;
  PrintWriter toClient = null;
  System.out.println("정책파일서버실행....");
  while (true) {
   client = ss.accept();
   InputStreamReader isr = new InputStreamReader(
     client.getInputStream());
   char[] buf = new char[1024];
   int read = isr.read(buf);
   String request = new String(buf, 0, read);
   if (request.equals("<policy-file-request/>\0")) {
    System.out.println("정책파일요청접수됨");
   } else {
    System.out.println("정책파일요청아님");
    continue;
   }
   // System.out.println("정책파일서버요청문자열:"+request);
   toClient = new PrintWriter(client.getOutputStream());
   String policy = "<?xml version='1.0'?>";
   policy += "<cross-domain-policy>";
   policy += "<site-control permitted-cross-domain-policies='*'/>";
   policy += "<allow-access-from domain='*' to-ports='*' />";
   policy += "</cross-domain-policy>";
   toClient.println(policy);
   toClient.flush();
   client.close();
   System.out.println("정책파일 전송완료");
  }
 }
}

 

Posted by 1010