[Delphi] Telnet i obsługa odpowiedzi

0

Witam,
Mam taki problem. Chciałbym napisać sobie program, który będzie obsługiwał telnet, tzn przez telnet serwer udostępnia jakiś tam program (program na serwerze nie jest mój), a ja chciałbym obsługiwać go z poziomu windowsa. Połączyć się z telnetem nie stanowi większego problemu (nie raz było nawet na tym forum opisywane), wysyłać komendy być może też nie będzie problem ale problem jest z odpowiedzią telnetu. Gdy połączę się z np. poczta.interia.pl na porcie 25 to w Memo dostaję ładne przywitanie takie jak na telnecie jednak gdy wklepię adres alpha.bn.org.pl na porcie 23 to wywala mi w Memo krzaki tymczasem w telnecie jest pod tym adresem ładne menu. Moje pytanie jest takie czy żeby w Memo nie było krzaków trzeba to w jakiś konkretny sposób pobrać? Może do tego nie nadaje się komponent Memo? Używam Indy TelnetClient ale próbowałem też na WinSockClient i z takim samym efektem. Na 100% daje się osiągnąć zamierzony efekt bo program ZOC Terminal radzi sobie z tym bez problemu. Proszę o jakieś wskazówki bo Google już nie pomaga…

0

Pisałem niedawno tutaj na formu podobny temat. Mnie udało się to rozwiązać zapisując odpowiedź do buffora a następnie użyłem konwersji UTF8ToStr

 k := ServerSocket1.Socket.Connections[i].ReceiveLength;
    SetLength(buffor,255);
    ServerSocket1.Socket.Connections[i].ReceiveBuf(buffor[1],255);
    sIn:= UTF8ToString(copy(buffor,1,k));
0
woolfik napisał(a)

Pisałem niedawno tutaj na formu podobny temat. Mnie udało się to rozwiązać zapisując odpowiedź do buffora a następnie użyłem konwersji UTF8ToStr

k := ServerSocket1.Socket.Connections[i].ReceiveLength;
SetLength(buffor,255);
ServerSocket1.Socket.Connections[i].ReceiveBuf(buffor[1],255);
sIn:= UTF8ToString(copy(buffor,1,k));

troszkę nie o to mi chodziło bo Ty konwertujesz z UTF8 znaki, a u mnie nic nie było tylko kilka znaków (zdaje się przełamania linii). W każdym razie już jakoś tam działa ale Twoja pomoc również przyda się do poprawnego kodowania [browar] ale jeśli chodzi o mój problem to zamieszczam screena... http://www.godzisz.cba.pl/delphi/zle.jpg
zamiast menu są dziwne znaczki, a ja nie wiem dlaczego...

0

bo nie wszystkie czcionki posiadaja znaki z ktorych mozna "napisac ramke".
na screenie widze, ze masz jakas "zwykla" czcionke ustawiona. ustaw "Terminal".

0
cimak napisał(a)

bo nie wszystkie czcionki posiadaja znaki z ktorych mozna "napisac ramke".
na screenie widze, ze masz jakas "zwykla" czcionke ustawiona. ustaw "Terminal".

no właśnie też nie... Myślę, że to może ma na to wpływ to czego używam. W Delphi 7 Personal + INDY9 menu pokazuje się ale już w Delphi 2009 Professional + INDY (chyba 10 tam jest) jest właśnie taki problem... Pod Delphi 7 nawet czcionka Verdana radzi sobie z pokazaniem menu http://www.godzisz.cba.pl/delphi/dobre.jpg

0

Znalazłem rozwiązanie tego problemu ale nie tak całkiem do końca. W Delphi 7 i INDY9 komponent IdTelnet ma taką opcję jak ASCIIFilter i żeby np.: w Memo było wyświetlane zamiast krzaczków normalne znaki trzeba tą opcję ustawić na False. Problem pojawia się w INDY10 bo tam IdTelnet nie ma tej opcji więc nie można tego wyłączyć (albo ja nie potrafię). Prosta rzecz, a jednak sprawiła mi tyle kłopotu. Dzięki za pomoc:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0