Здравствуйте, хотелось бы рассказать о своей проблеме. У меня есть Java Server (Java клиент с ним нормально работает).
Я создал клиент на FLASH и тут начались проблемы. Когда происходит соединение с сервером, возможно только первые 2-3 секунды общаться с сервером! Дальше флешка просто ничего не посылает!
Вот код класса для работы с сокетами (в порядок не приводил):

Код AS3:
package org.conn {
import flash.errors.*;
import flash.events.*;
import flash.net.Socket;
public class CustomSocket {
var CSsocket:Socket = new Socket();
public function CustomSocket(host:String = null, port:uint = 0) {
CSsocket.timeout = 100000;
CSsocket.connect(host,port);
configureListeners();
}
private function configureListeners():void {
//socket.addEventListener(Event.CLOSE, this.closeHandler);
//socket.addEventListener(Event.CONNECT, this.connectHandler);
//socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
CSsocket.addEventListener(Event.CONNECT, Connected);
//socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function ErrorHandler(event:Event):void {
trace("FSDFSDF");
}
private function Connected(event:Event):void {
trace("Успешное соединение! ");
}
private static const _TRIM_PATTERN:RegExp = /^\s*|\s*$/g;
public static function trim(text:String):String {
return text.replace(_TRIM_PATTERN, "");
}
public function socketWrite(Message:String)
{
CSsocket.writeUTF(Message);
}
public function socketRead():String
{
var CountBytes:int = CSsocket.bytesAvailable;
var Response:String = trim(CSsocket.readUTFBytes(CountBytes));
return Response;
}
private function socketDataHandler(event:ProgressEvent):String {
var CountBytes:int = CSsocket.bytesAvailable;
var Response:String = trim(CSsocket.readUTFBytes(CountBytes));
trace("socketDataHandler: " + Response);
return Response;
}
}
}
В 1 кадре (и последнем) пишу код для создания экземпляра и работы с сокетом.

Код AS3:
Security.loadPolicyFile("xmlsocket://localhost:813");
function Connect(event:Event):void
{
var CSsocket:CustomSocket = new CustomSocket("localhost", 5000);
CSsocket.socketRead();
CSsocket.socketWrite("gasdg");
}
Я понимаю, что если много раз нажимаешь на кнопку, которая вызывает функцию Connect, то порт будет просто занят. Но почему когда я закрываю сокет после отправки и принятия данных, Flash выдает ошибку?
Я умею размещать начальный код для запуска всего механизма только в кадре, может быть еще можно где-нибудь размещать? (я начинающий флешер, до этого программировал на PHP, C#, Java, JS).
P.S:
Policy File работает на ура!