Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Stefano - Luglio 21, 2012, 05:58:47 pm

Titolo: connessione via Indy TCP
Inserito da: Stefano - Luglio 21, 2012, 05:58:47 pm
sto usando Indy 10, per connettermi ad un server Alice ftp.webalice.it,
componente IdTCP , ma non c'e' verso.
porta 21 del router aperta, eseguibile Lazarus abilitato su Firewall Win7.

--- stesso identico codice su Delphi e Indy10 entra senza problemi

   idTCPClient1.Host := 'ftp.webalice.it';
   idTCPClient1.Port := 21;

   IdTCPClient1.Disconnect;
   IdTCPClient1.IOHandler.Free; //cancella Buffer per evitare Errore Already Connected

   try
   idTCPClient1.Connect;

     try
       IdTCPClient1.IOHandler.WriteLn('Client message');
       IdTCPClient1.IOHandler.ReadLn;
     finally
       IdTCPClient1.Disconnect;
     end;

   except
     ShowMessage('Errore connessione');
   end;
Titolo: Re:connessione via Indy TCP
Inserito da: Maverich - Luglio 22, 2012, 08:25:25 am
verificato stesso problema su CodeTyphoon rel. 2.70 (sulla Rel. 2.40 invece funziona),
e' una rogna la rel. Indy e' sempre la 10.
la connessione TCP con INet o Synapse invece funziona.
Titolo: Re:connessione via Indy TCP
Inserito da: Stefano - Luglio 23, 2012, 10:06:25 am
ho provato ad eseguire la connessione da una VM con WinXP, sempre Indy10 e CodeTyphoon 2.70, e non si verifica l'errore in fase di connessione.

per la cronoca l'errore si verifica sulla unit
 IdStackWindows linea 1235

{$IFDEF UNICODE_BUT_STRING_IS_ANSI}
LTemp := WideString(AHostName); // explicit convert to Unicode
{$ENDIF}
if UseIDNAPI then begin
1235 RetVal := getaddrinfo(PChar(IDNToPunnyCode(AHostName)), nil, @Hints, @LAddrInfo);
end else begin
RetVal := getaddrinfo(
{$IFDEF UNICODE_BUT_STRING_IS_ANSI}PWideChar(LTemp){$ELSE}PChar(AHostName){$ENDIF},
nil, @Hints, @LAddrInfo);
end;

verificata la unit e' identica a quella presente in Delphi (XE2).