Elimde c# ile yazılmış bir program var. bu program ile telnet üzerinde bir cihaza bağlanıyorum. bunu delphi de indy bileşenleri ile bağlanmayı denedim. bağlandım ve cihaz şifre soruyor. şifre gönderdim kabul etmiyor. hatalı şifre diyor. aşağıda c# ve benim kodu gönderiyorum. bir yerede hata var ama c# ı tam bilmedim için sorunu bulamadım.
c# kodu
[*]case State.PreLogin:
/*
* Varsayılan şifre olan 1234'ü yolla.
*
* Send default password 1234
*/
string resp = Encoding.ASCII.GetString(m_buffer, 0, recvd);
if (resp.EndsWith("Password: "))
{
Byte[] data = Encoding.ASCII.GetBytes("1234");
m_client.GetStream().Write(data, 0, data.Length);
m_state = State.Login;
}
Delphi Kodu
[*]procedure TfrmTelnetDemo.edtSendCommandKeyPress(Sender: TObject;
var Key: Char);
var
i : integer;
s : string;
begin
if IdTelnetDemo.Connected then
if (key = #13) then
begin
s := edtSendCommand.text;
for i := 1 to length(s) do
IdTelnetDemo.SendCh(s);
IdTelnetDemo.SendCh(#13);
edtSendCommand.Clear;
edtSendCommand.SetFocus;
end;
end;
telnet şifresi girme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 2
- Kayıt: 15 Nis 2019 12:59
- İletişim:
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: telnet şifresi girme
Delphi 2009 ve üstü sürümlerde string bilgiler unicode desteğine kavuştu ve cihazınız sanırım ansi string tipiyle haberleşiyor. Tip dönüşümlerine dikkat edin isterseniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 2
- Kayıt: 15 Nis 2019 12:59
- İletişim:
Re: telnet şifresi girme
çok teşekkürler
Re: telnet şifresi girme
sahinteknik yazdı: ↑15 Nis 2019 01:02 Elimde c# ile yazılmış bir program var. bu program ile telnet üzerinde bir cihaza bağlanıyorum. bunu delphi de indy bileşenleri ile bağlanmayı denedim. bağlandım ve cihaz şifre soruyor. şifre gönderdim kabul etmiyor. hatalı şifre diyor. aşağıda c# ve benim kodu gönderiyorum. bir yerede hata var ama c# ı tam bilmedim için sorunu bulamadım.
c# kodu
[*]case State.PreLogin:
/*
* Varsayılan şifre olan 1234'ü yolla.
*
* Send default password 1234
*/
string resp = Encoding.ASCII.GetString(m_buffer, 0, recvd);
if (resp.EndsWith("Password: "))
{
Byte[] data = Encoding.ASCII.GetBytes("1234");
m_client.GetStream().Write(data, 0, data.Length);
m_state = State.Login;
}
Delphi Kodu
[*]procedure TfrmTelnetDemo.edtSendCommandKeyPress(Sender: TObject;
var Key: Char);
var
i : integer;
s : string;
begin
if IdTelnetDemo.Connected then
if (key = #13) then
begin
s := edtSendCommand.text;
for i := 1 to length(s) do
IdTelnetDemo.SendCh(s);
IdTelnetDemo.SendCh(#13);
edtSendCommand.Clear;
edtSendCommand.SetFocus;
end;
end;
Merhaba,
Kullandığınız Delphi sürümü nedir?
Sorununuzun kaynağı sizin Byte bilgi göndermeniz gerekir iken string bilgi gönderiyor olmanız gibi gözüküyor.
Yakın zamanda çıkan Delphi sürümleri ile nisbeten daha kolay ve C# koduna çok benzer kodlar ile yapılabilir. Delphi 7 gibi eski bir sürüm için biraz daha farklı bir çözüm izlemek gerekir.