Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   XML Socket etc (http://www.flasher.ru/forum/showthread.php?t=113432)

Ruffus 28.06.2008 00:56

XML Socket etc
 
Я организовал скромный TCPServer на Delphi средствами библиотеки Indy, чтобы слать данные в мувик. После старта сервера и мувика вижу (через trace и прочее), что соединение устанавливается. Однако данные не ходят ни туда, ни сюда. ПОдскажите, плиз, какие могут быть причины.

wvxvw 28.06.2008 03:01

самая популярная - настройки безопасности (думаю, что если по форуму поискать по "crossdomain", "socket" или "global security settings" - много чего найдеться).
менее популярные - разные прокси с фаирволами.
Ну и дальше надо код смотреть, вариантов много =)

Ruffus 28.06.2008 11:30

А если у меня подключение идёт на localhost и firewall отключен?)

wvxvw 28.06.2008 13:08

ну опять же, если запускать SWF из среды разработки проблем безопасности не возникнет, а из стандалон плеера/из браузера - да.

Ruffus 28.06.2008 16:22

Мдамс, я как раз из среды запускаю...

Ruffus 30.06.2008 12:08

Попробовал клиент сделать на той же Indy. Стравливаю его с сервером - всё Ок. Вижу, как сообщения ходят туда сюда. А с флэшем кроме коннекта самого ничего не происходит.
Код:

_conn = false;
_xmlSocket = new XMLSocket();               
_xmlSocket.onConnect = Delegate.create(this, xmlOnConnect);

          private function xmlOnConnect(success:Boolean)
        {
                _conn = success;
                trace('connected' + "        " + success);
                _xmlSocket.send(new XML('<text>BYAGJOPR</text>'));
                _xmlSocket.send('<text>BYAGJOPR</text>');
        }


Alex_beginner 30.06.2008 12:16

Ruffus! Пожалуйста выложите Дельфийский код TCPSever'a и код Флеша. Там посмотрим. А то абстрактно гадать, что у Вас неверно довольно сложное занятие.

Ruffus 30.06.2008 15:57

Код флеша показан выше.
Вот скромный сервер.
Код:

procedure TfmMain.btnOffClick(Sender: TObject);
var i: integer;
begin
  for i := 0 to hvIdTCPServer.Contexts.LockList.Count - 1 do
    TIdContext(hvIdTCPServer.Contexts.LockList[i]).Connection.Disconnect;
end;

procedure TfmMain.btnOnClick(Sender: TObject);
begin
  hvIdTCPServer.DefaultPort := 1234;
  hvIdTCPServer.Active := True;
end;

procedure TfmMain.FormDestroy(Sender: TObject);
var i: integer;
begin
  for i := 0 to hvIdTCPServer.Contexts.LockList.Count - 1 do
    TIdContext(hvIdTCPServer.Contexts.LockList[i]).Connection.Disconnect;
end;

procedure TfmMain.hvIdTCPServerConnect(AContext: TIdContext);
begin
  mmOut.Lines.Add('Connected');
  lbInfo.Caption := 'ON';
end;

procedure TfmMain.hvIdTCPServerDisconnect(AContext: TIdContext);
begin
  mmOut.Lines.Add('Disconnected');
end;

procedure TfmMain.hvIdTCPServerExecute(AContext: TIdContext);
var
  lCmd: string;
begin
  mmOut.Lines.Add('Executed');
  lCmd := Trim(AContext.Connection.IOHandler.ReadLn);
  mmOut.Lines.Add(lCmd);
  if AnsiSameText(lCmd, '<test>BYAGJOPR</test>' ) then
    AContext.Connection.IOHandler.WriteLn('<appeal><function name="followLink" param="1" type="set"></function></appeal>'); 

  if AnsiSameText(lCmd, 'HELP') then
  begin
    AContext.Connection.IOHandler.WriteLn('HELP');
    AContext.Connection.IOHandler.WriteLn('QUIT');
    AContext.Connection.IOHandler.WriteLn('GETTIMESTAMP');
    AContext.Connection.IOHandler.WriteLn('');
  end

  else if AnsiSameText(lCmd, 'QUIT') then
  begin
    AContext.Connection.IOHandler.WriteLn('Goodbye...');
    AContext.Connection.IOHandler.WriteLn('');
    AContext.Connection.Disconnect;
  end

  else if AnsiSameText(lCmd, 'GETTIMESTAMP') then
  begin
    AContext.Connection.IOHandler.WriteLn(
    FormatDateTime('yyyy-mm-ddThh:nn:ss.zzz', Now));
    AContext.Connection.IOHandler.WriteLn('');
  end;

end;


wvxvw 30.06.2008 16:24

попробуйте потрейсить, XMLSocket.onData во флеше. К сожелению Delphi я не знаю =( поэтому не могу сказать все ли нормально с серверной частью.

Ruffus 30.06.2008 19:30

Серверную часть я тестил с помощью клиенской части. Работало на ура всё.
Ну а в odData я первым оператором вывожу полученные данные. И ничего. Потому и говорю, что не ходит ничего.


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

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