액션스크립트에서 바이너리 데이터를 서버로 전송하는 코드입니다. 물론… 서버 측에서 바이너리 데이터를 받아 들이는 서비스를 제공해야겠지요.. 바이너리 데이터 전송이므로.. 방식은 POST를 사용합니다.. 액션스크립트 코드는 다음과 같습니다..
protected function button1_clickHandler(event:MouseEvent):void
{
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://127.0.0.1:8080/Xr?edChkLog");
var bytes:ByteArray = new ByteArray();
bytes.writeDouble(3.14);
bytes.writeInt(34321);
bytes.position = 0;
request.data = bytes;
request.method = URLRequestMethod.POST;
request.contentType = "application/octet-stream";
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, onCompleted);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.load(request);
}
바이너리 데이터는 ByteArray 타입에 저장되며.. 원하는 데이터를 write 매서드 군으로 저장시킵니다. 9번 코드와 15번 코드가 꼭 필요한지는 제거해서 확인해 보시기 바랍니다..
서버측은.. 저 같은 경우 자바의 서블릿을 사용했는데… POST 방식으로 요청을 받으므로 doPost 매서드를 오버라이드해서 데이터를 읽어오면 됩니다.. 바이너리 데이터를 쉽게 읽기 위해 DataInputStream을 사용했는데.. 이해를 돕고자.. 관련된 코드를 제시한다면 다음과 같습니다..
....
ServletInputStream in = req.getInputStream();
System.out.println("readable size: " + in.available());
DataInputStream dis = new DataInputStream(in);
System.out.println(dis.readDouble() + " , " + dis.readInt());
....
req는 서블릿의 요청에 대한 HttpServletRequest 객체입니다.. 화면상에 읽을 수 있는 바이너리의 바이트 수와 클라이언트가 보낸 실수값(3.14)와 정수값(34321)이 찍히면 정상입니다..
플래시의 액션스크립트를 이용해 서버측으로부터 바이너리 데이터를 읽을 수도.. 또.. 전송할 수 있도 있음으로 퍼포먼스를 향상 시킬 수 있겠습니다..

우와 좋은 정보에요, 감사합니다 乃
감사!