Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   ServerSocket и Socket (http://www.flasher.ru/forum/showthread.php?t=174863)

van2tus 04.02.2012 15:34

ServerSocket и Socket
 
Добрый день.

Хотел попробовать пересылать данные между двумя swf.
Первое приложение сервер. В нем через ServerSocket.bind() создаю подключение.
Второе клиент подключаюсь К серверу через Socket.connect().
Подключение проходит нормально, но я не могу разобраться, как отправлять данные с сервера на клиент.

Т.е. у Socket есть методы типа writeInt, readBytes. А у ServerSocket судя по хэлпу ни чего подобного нет.
Возможен ли вообще такой вариант связи двух флэшек?
Если да, то как, если нет, то чем это можно заменить?

Заранее спасибо за ответ.

bav 04.02.2012 16:18

Описание метода listen().
Цитата:

После вызова метода listen() объект ServerSocket отправляет событие connect при каждой попытке соединения. Свойство socket объекта события ServerSocketConnectEvent ссылается на объект Socket, который представляет собой подключение между сервером и клиентом.

van2tus 04.02.2012 16:52

Спасибо.

Добавлено через 11 минут
Еще 1 вопрос, К ServerSocket удается подключится, если два компьютера соединены через Wi Fi, но по интернету соединиться не удается, в чем проблема?

-De- 04.02.2012 17:24

Наверное у сервера виртуальный айпи.

van2tus 05.02.2012 16:48

Еще с такой проблемой столкнулся, при запуске приложения из флеша, оно работает нормально. Но если Запускать через swf на диске, то подключение проходит, но не работают обработчики событий. Из за чего это может быть?

Код AS3:

import flash.net.Socket;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
import flash.events.Event;
 
var clientSocket:Socket = new Socket();
 
 
clientSocket.addEventListener( ProgressEvent.SOCKET_DATA, onClientSocketData);
clientSocket.addEventListener( IOErrorEvent.IO_ERROR, onError);
clientSocket.addEventListener( Event.CONNECT, onConnectClient);
 
clientSocket.connect('192.168.1.71',25565);
 
function onConnectClient(event:Event)
{
        Label1.text = 'Подключение удалось';
}
 
function onError(event:IOErrorEvent )
{
        Label1.text = 'Подключение не удалось';
}
 
function onClientSocketData(event:ProgressEvent )
{
        trace(clientSocket.readInt());
        clientSocket.writeBoolean(true);
        clientSocket.flush();
}
Label1.text = 'Ожидается подключение';


bav 06.02.2012 02:37

Цитата:

Но если запускать через swf на диске, то подключение проходит, но не работают обработчики событий.
Каким образом вы узнаете что подключение происходит, если, судя по вашим словам, текст в Label1 не меняется на 'Подключение удалось'? Если сервер показывает, что к нему кто-то подключается, но клиент не показывает, что ему удалось подключится, значит так оно и есть. Попробуйте послушать и другие события:
Код AS3:

addEventListener(Event.CLOSE, closeHandler);
addEventListener(Event.CONNECT, connectHandler);
addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);



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

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