Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Socket соединения 
:(
    Опции темы
Enelar
Дата 15.3.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



Простите нуба.
Сам пишу на С++, а тут нужда прижала.
Вобщем как открыть сокет соединение под флеш, как буфер писать...
Хочу пример или не мертвую ссылку на учебник.
PM MAIL   Вверх
idti
Дата 20.3.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 28.2.2009
Где: pnz

Репутация: нет
Всего: нет



http://help.adobe.com/en_US/AS3LCR/Flash_1.../XMLSocket.html Там пример внизу, и где - то можно язык на русский поменять, но и так все понятно, главное прочитать перед примером нотацию по запуску=)
PM MAIL   Вверх
idti
Дата 20.3.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 28.2.2009
Где: pnz

Репутация: нет
Всего: нет



там же на адобовском сайте есть мануалы в .ПДФ и просто россыпью, давольно доступно пишут=)
PM MAIL   Вверх
Fixin
Дата 21.3.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 1
Всего: 18



Цитата(Enelar @ 15.3.2009,  12:10)
Сам пишу на С++

У флеша есть особенность: нужно при записи в сокет со стороны си-кода дописывать обязательно нуль-байт:
Код
bool writeSocket(int sock, char* s) {
    int status = ::send (sock, s, strlen(s)+1, MSG_NOSIGNAL);
  if ( status == -1 )
    {
      return false;
    }
  else
    {
      return true;
    }
}
Это си-код для линукс-сокета. Со стороны флешки выглядит как-то так (тока void с маленькой буквы должен быть):
Код

package;

import flash.system.Security;
import flash.net.XMLSocket;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.events.DataEvent;

class TrySocket
{
        // properties
        private var socket:             XMLSocket;

        // constructor
        public function new()
        {
                try
                {
                        Security.loadPolicyFile('xmlsocket://localhost:4444');

                        trace('create socket');
                        this.socket = new XMLSocket('localhost', 4444);
                        this.socket.addEventListener(Event.CONNECT, OnConnect);
                        this.socket.addEventListener(DataEvent.DATA, OnData);
                        this.socket.addEventListener(Event.CLOSE, OnClose);
                        this.socket.addEventListener(IOErrorEvent.IO_ERROR, OnIOError);
                        this.socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, OnSecurityError);
                }
                catch(e:Dynamic)
                {
                        trace('sluchilos strashnoe!');
                        trace(e.toString());
                }
        }

        static public function main():Void
        {
                new TrySocket();
        }

        private function OnConnect(event:Event):Void 
        {
                trace('Connected!');
                trace('send some data');
                this.socket.send('Hello\n');
                this.socket.send('How do you do?\n');
                this.socket.send('It`s work!!!\n');
        }

        private function OnData(event:DataEvent):Void 
        {
                trace('OnData: ' + event.data);
        }

        private function OnClose(event:Event):Void 
        {
            trace('connection closed');
        }

        private function OnIOError(event:IOErrorEvent):Void 
        {
                trace('OnIOError');
                trace(event.toString());
        }

        private function OnSecurityError(event:SecurityErrorEvent):Void 
        {
                trace('OnSecurityError');
                trace(event.toString());
        }

        public function toString():String { return 'TrySocket'; }               
}
 Важно обратить внимание на две неприятные особенности:
1) необходимо загружать police-file-request
2) сокет иногда "склеивает" сообщения, т.е. высланные два подряд сообщения могут прийти как одно.

PM MAIL ICQ   Вверх
idti
Дата 22.3.2009, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 28.2.2009
Где: pnz

Репутация: нет
Всего: нет



Цитата

сокет иногда "склеивает" сообщения, т.е. высланные два подряд сообщения могут прийти как одно.


Что-то не верится, было такое как-то, но нашел логическую ошибку в коде и пропало, было связано с тем, что сервер и клиент выполнялись в одном потоке одной программы.
PM MAIL   Вверх
Enelar
Дата 23.3.2009, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 13.1.2008

Репутация: нет
Всего: 1



За пример большое спасибо, но без комментариев не разобрать ява код.
На сайт гляну спасибо))

Добавлено через 5 минут и 5 секунд
вот точто по ссылке пример спасибо, все понял только вопрос.
если мы через флешку пошлем "hello"
а с++ программа это примет, прийдет "hello" ?
Или типа эксперементируй на себе?)
PM MAIL   Вверх
idti
Дата 24.3.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 28.2.2009
Где: pnz

Репутация: нет
Всего: нет



Что пошлешь, то и прийдет. Ты о чем? И да к какому ява коду те нужны комментарии?
PM MAIL   Вверх
Fixin
Дата 28.3.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 1
Всего: 18



Enelar, ява код. // просо подсветку включил для ас от явы smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.