서버측 컴퓨터의 843포트에서 실행되는 Policy File Server

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

 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='master-only'/>";
   policy+="<allow-access-from domain='*' to-ports='*' />";
   policy+="</cross-domain-policy>";
   toClient.println(policy);
   toClient.flush();
   client.close();
   System.out.println("정책파일 전송완료");  }
 }
}


Posted by 미랭군