Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 25.01.2012, 14:07
TrueTrAxeX вне форума Посмотреть профиль Отправить личное сообщение для TrueTrAxeX Найти все сообщения от TrueTrAxeX
  № 1  
Ответить с цитированием
TrueTrAxeX

Регистрация: Nov 2011
Сообщений: 10
По умолчанию Flash сокеты

Здравствуйте, хотелось бы рассказать о своей проблеме. У меня есть 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 работает на ура!


Последний раз редактировалось TrueTrAxeX; 25.01.2012 в 14:17.
Создать новую тему   Часовой пояс GMT +4, время: 02:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:14.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.