UDP Paket işlemleri

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
DelphiNV
Üye
Mesajlar: 54
Kayıt: 28 Oca 2005 03:15
Konum: Bursa

UDP Paket işlemleri

Mesaj gönderen DelphiNV »

Merhaba Arkadaşlar...

Bir UDP paketinden gelen datayı alıp sorgulayıp tekrar göndermem gerekiyor.
Aşağıdaki resimde işaretli olan UDP paketinin 20 Byte lık datası gibi

Resim


Bu paketin datasını IdUDPserver ile string olarak alabiliyorum. Fakat bana yukarıdaki gibi hex decimal değerleri lazım.
O değerler üzerinde karşılaştırma yapıp, tekrar yine aynı şekilde göndermem gerekiyor ama bir türlü beceremedim.

Data tipi byte bende gönderirken byte olarak mı göndermeliyim.. ?

Nasıl bir yol izlemem gerekiyor. Bu tür işlemlerle uğraşan arkadalar ne tavsiye eder..

herkese saygılar
İ
yi Çalışmalar Dilerim..
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Re: UDP Paket işlemleri

Mesaj gönderen undefined »

Nasıl bir işlem yapacaksın hex ile, verilecek cevap buna bağlı.
Gösterim ile raw data birbirinden ayır. Hex sadece gösterimde anlamlı, yani program hex ile çalışmak zorunda değil insan okumayacaksa.
DelphiNV
Üye
Mesajlar: 54
Kayıt: 28 Oca 2005 03:15
Konum: Bursa

Re: UDP Paket işlemleri

Mesaj gönderen DelphiNV »

merhaba;
Sol taraftaki hex değerlerin her benim için bir anlamı var.
Ben bu hex değerlerini alabiliyorum.(string değeri hex'e çevirerek.)
Resimde işaretli ilk 2 bayte değeri de ad bende programımdan geriye de ad değerini tekrar göndermem gerekiyor.
Ama bunu yapamadım.
String olarak gönderdiğimde olmuyor. Bir türlü oradaki hex "de ad" değerini gönderemiyorum. Bunun için nasıl bir yöntem kullanmalıyım...
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Re: UDP Paket işlemleri

Mesaj gönderen bulutsuzluk_35 »

1.DE--->BINARY:11011110--->DECIMAL:222
2.AD--->BINARY:10101101--->DECIMAL:173

Şimdi kullandığın componenti bilmiyorum ama şu var sen bunu istersen şöle gönderebilirsin
senstring(chr(222)+chr(173)); yada şayet bu hex değeri string olarak misal memoda göstermek istersende bir case içinde yapabilirsin
baytı bite çevirip 4 lü olarak gruplandırıp
case bitler of
1010:memo1.text:memo1.text+'A';
1011:memo1.text:memo1.text+'B';
gibi
tabi string değişkenleri case içinde kullanabilmek için strcaseof isimli bir fonksiyon var nette buldum bende onu kullanabilirsin
anladığıma göre cevabımı verdim umarım faydalı olmuştur.

Kod: Tümünü seç

try
  try
    inc(Bilgi);
  except
    sabir;
  end;
finally
  inc(Mutluluk);
end;
Cevapla