У меня есть приложение Flex AIR, и я пытаюсь получить данные с сервера Java. Может кто-нибудь сказать мне, если этот подход будет работать?
Запустите ServerSocket в Java и дождитесь соединения.
Используйте Flex для подключения к тому же порту.
Записать некоторые данные в сокет с Java Server.
Прочитайте данные в конце Flex и обработайте их.
-
Обновить :
Я думаю, что могу заставить это работать, но данные, которые я прочитал обратно в конец Flex, кажутся пустыми.
Код моего сервера:
socket = new ServerSocket(port);
client = socket.accept();
InetAddress address = client.getInetAddress();
BufferedReader in = new BufferedReader( new InputStreamReader(
client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
out.println("hi");
out.flush();
А мой код на Flex это
private function onRecieveDataClick():void
{
var host:String = "127.0.0.1";
var port:int = 9090;
var socket:Socket = new Socket();
socket.endian = Endian.BIG_ENDIAN;
socket.addEventListener(Event.CONNECT, onConnect);
socket.connect(host, port);
}
private function onConnect(event:Event):void
{
trace(" Connected to server socket ");
var socket:Socket = Socket(event.target);
var obj:String = socket.readUTFBytes( socket.bytesAvailable);
trace(obj);
}
Моя текущая проблема - socket.bytesAvailable
становится 0, и поэтому obj
выглядит как "". Так как же прочитать данные, отправленные с сервера, используя Socket
во Flex?