Ho scritto i seguenti due progetti:
Server:
codice:
var
Form2: TForm2;
HHost: string;
implementation
{$R *.dfm}
procedure TForm2.AddLog(Text: string);
begin
Log.Lines.Add(TimeToStr(Now) + ': ' + Text);
end;
procedure TForm2.ConnBtnClick(Sender: TObject);
begin
if FileExists('local') then
HHost := IP.CurrentIP
else
HHost := '192.168.0.2';
Server.Active := true;
end;
procedure TForm2.SendBtnClick(Sender: TObject);
begin
Server.Send(IP.CurrentIP, 1718, Cmd.Text);
end;
procedure TForm2.ServerUDPRead(Sender: TObject; AData: TBytes; ABinding: TIdSocketHandle);
begin
AddLog(ABinding.IP + ' -> ' + BytesToString(AData));
end;
procedure TForm2.TimerTimer(Sender: TObject);
begin
if Server.Active then
begin
StatusLbl.Caption := 'Connesso.' + HHost;
if not SendBtn.Enabled then
SendBtn.Enabled := true;
end
else
begin
StatusLbl.Caption := 'Non connesso.';
if SendBtn.Enabled then
SendBtn.Enabled := false;
end;
end;
end.
Client:
codice:
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.AddLog(Text: string);
begin
Log.Lines.Add(TimeToStr(Now) + ': ' + Text);
end;
procedure TForm3.ConnBtnClick(Sender: TObject);
begin
if FileExists('local') then
Client.Host := IP.CurrentIP
else
Client.Host := '192.168.0.1';
Client.Connect;
end;
procedure TForm3.SendBtnClick(Sender: TObject);
begin
Client.Send(IP.currentIP,1717,Cmd.Text);
end;
procedure TForm3.TimerTimer(Sender: TObject);
begin
if Client.Connected then
begin
StatusLbl.Caption := 'Connesso' + Client.Host;
if not SendBtn.Enabled then
SendBtn.Enabled := true;
end
else
begin
StatusLbl.Caption := 'Non connesso';
if SendBtn.Enabled then
SendBtn.Enabled := false;
end;
if Client.Binding.Readable(1) then
AddLog(Client.Binding.PeerIP + ' -> ' + Client.ReceiveString());
end;
end.
Sia il client che il server funzionano sulla stessa macchina.
Si connettono correttamente, il Server su CurrentIP:1717 e manda dati su CurrentIP:1718 mentre il Client l'opposto.
Il problema è che il client invia correttamente al server, ma non avviene il contrario, che cosa ho sbagliato?????
Aiutatemi x favore, grazie