![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Я организовал скромный TCPServer на Delphi средствами библиотеки Indy, чтобы слать данные в мувик. После старта сервера и мувика вижу (через trace и прочее), что соединение устанавливается. Однако данные не ходят ни туда, ни сюда. ПОдскажите, плиз, какие могут быть причины.
|
|
|||||
|
Modus ponens
|
самая популярная - настройки безопасности (думаю, что если по форуму поискать по "crossdomain", "socket" или "global security settings" - много чего найдеться).
менее популярные - разные прокси с фаирволами. Ну и дальше надо код смотреть, вариантов много =)
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
А если у меня подключение идёт на localhost и firewall отключен?)
|
|
|||||
|
Modus ponens
|
ну опять же, если запускать SWF из среды разработки проблем безопасности не возникнет, а из стандалон плеера/из браузера - да.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Мдамс, я как раз из среды запускаю...
|
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Попробовал клиент сделать на той же 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>');
}
|
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Ruffus! Пожалуйста выложите Дельфийский код TCPSever'a и код Флеша. Там посмотрим. А то абстрактно гадать, что у Вас неверно довольно сложное занятие.
__________________
Случайность, господа, это знаете ли непознанная необходимость. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Код флеша показан выше.
Вот скромный сервер. 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;
|
|
|||||
|
Modus ponens
|
попробуйте потрейсить, XMLSocket.onData во флеше. К сожелению Delphi я не знаю =( поэтому не могу сказать все ли нормально с серверной частью.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 82
|
Серверную часть я тестил с помощью клиенской части. Работало на ура всё.
Ну а в odData я первым оператором вывожу полученные данные. И ничего. Потому и говорю, что не ходит ничего. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:59. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|