PDA

Просмотр полной версии : Delphi 7 & Flash MX


Lavelas
19.02.2004, 15:03
Многоуважаемые, возникла проблема следующего характера: Обмен данными между Delphi 7 и Flash`ем. Т.е. в Делфи 6 как бы все хорошо - объект ServerSocket и вперед, но дело в том что в Делфи 7 этот объект переработан в TTcpServer и вроде как и старается работать, но все строки получаемые от flash отображает только после закрытия flash приложения. Странно. Привожу упрощеный код делфовый и флэшовый.

Delphi :

procedure TForm1.ServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
Memo1.Lines.Append(ClientSocket.Receiveln());//тут как бы в Мемо должны получаемые строки добавляться.
end;


Flash :

on (release) {
client = new XMLSocket();
client.connect(ip, 8888);
client.onConnect = function(success) {
if (success == true) {
client.send("I am connected");
client.onData = function(data) {
trace(data);
};
}
};
}
пока флэш не закроешь, ничего в Memo1 не отобразится...


Флэшовый код абсолютно рабочий для Делфи 6. И наполовину для Делфи 7. Делфовый код рабочий для другого делфи-приложения с TTcpClient. В чем дело не понятно... ждем-с вразумлений...

Lavelas
20.02.2004, 02:28
Похоже придется инсталить ServerSocket в Delphi 7 ...

Persival Shuttenbah
26.05.2004, 17:28
Почему бы не создавать ServerSocket динамически? Компонент убрали, но объект остался ;)

type
TForm1 = class(TForm)
...
procedure ServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);
...
end;

var Server1: TServerSocket;

procedure TForm1.FormCreate(Sender: TObject);
begin
Server1:=TServerSocket.Create(Form1);
With Server1 do
begin
Parent:=Form1;
Port:=2002;
Active:=true;
end;
Server1.OnAccept:=ServerAccept;
end;

procedure TForm1.ServerAccept(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
Memo1.Lines.Append(ClientSocket.Receiveln());
end;