Az UDP kezelése |
Ma egy három részes cikksorozatot szeretnék elkezdeni, mely egy egyszerű, ám mégis praktikus üzenetküldő program készítéséről szól, hiszen a hálózatok egyre fontosabb szerepet töltenek be életünkben. A szoftver Delphis leírását közlöm, egyrészt, mert szerintem sokan ismerik a Pascalt, így - ha esetleg más nyelvre is tértek át – könnyen megérthetik, és a Kylix segítségével könnyedén átírhatják Linuxra is. A további okok, pedig a fejlesztőrendszer kényelmessége és a Socketek egyszerű kezelhetősége. A program az egyszerűség kedvéért UDP Socketen (foglalaton) keresztül kommunikál. |
Miért éppen UDP? |
Nos a kérdés jogos, a válasz pedig kézenfekvő: azért, mert az UDP-t könnyű kezelni, ellentétben a TCP/IP-vel. Ott tudniillik viszonylag sok esemény van, és néha trükközni kell egy picit. Az UDP-vel nem ez a helyzet, a végeredmény pedig látványos, és működik. Persze ennek azért van némi hátulütője: a biztonság. Míg TCP/IP esetén biztosak lehetünk benne, hogy a küldött adat megérkezik a címzetthez, UDP esetén ez már nem olyan biztos – nagy kiterjedésű hálózat (WAN) esetén. Azért ne keseredjünk el, a programot elsősorban kis hálózatra (LAN – Lokális hálózat) tervezzük, elsőre ne akarjuk meghódítani az Internetet! |
Még egy kis UDP |
UDP: Angolul User Datagram Protocol. Gyorsasága, és egyszerűsége miatt a TCP/IP mellett az egyik legkedveltebb kommunikációs protokoll. Általában valós idejű kommunikációra (kis hálózatok esetén), valós idejű videó, vagy hang lejátszásra (nagy hálózatok esetén is) használják. Számunkra a Socket Delphiből elérhető legfontosabb paraméterei a következők: • LocalPort: Az a port, ahol a socket az üzeneteket fogadja. • RemotePort: Az a port, ahol a socket az üzeneteket küldi. • LocalHost: A célszámítógép IP címét tartalmazza. (a hálózaton belüli egyedi azonosító, mindenkinek van és mindenkié különbözik a többiekétől) E három lehetőséget még ennél is tovább egyszerűsíthetjük, ha a LocalPortot és a RemotePortot ugyanarra állítjuk, igaz, ezzel végképp feladtuk a biztonságot, hiszen így még az is előfordulhat, hogy éppen abban a pillanatban küldünk el valamit, amikor adat érkezik, azon kívül, hogy például egyszerre két adat is érkezhet (ez az alapprobléma). A portszám 1025 és 32767 közti érték legyen, ha lehet, mert elvileg 1024-ig foglaltak lehetnek a portok az operációs rendszer számára (bár mikor írtam a programot direkt a 80-ast használtam, és működött…). Bármily furcsa is, eseményei közül nekünk csak az OnDataReceived (adat érkezése) eseményre lesz szükségünk, függvényei közül a SendBuffer és a GetBuffer lesznek az izgalmasak. Mivel egy kicsit kevés a helyem, megpróbálom röviden, de érthetően közölni a lépéseket. Fenti okokból kifolyólag, kénytelen vagyok egy kis jártasságot feltételezni a Delphi területén, ha BÁRMILYEN problémájuk van a Kedves Olvasóknak, kérlek, írjanak!!! Először is olyan Delphire lesz szükségünk, mely tartalmazza a FastNet csoportot, azon belül pedig a NMUDP komponenst, valamint egy File/New/Application parancsra. Ha jól tudom, akkor előbbi a 4-es verziótól része a fejlesztőkörnyezetnek! |
Szóval röviden: mik is kellenek egy ilyen programhoz? |
A legfontosabb ugyebár maga az UDP Socket – NMUDP – ez megvan. Kell egy-egy Memo a beérkezett és a küldött üzeneteknek. Egy-egy EditBox a címzett IP címének, (legalább) a RemotePortnak és a küldendő szövegnek, valamint egy „Küld” gomb sem árt, ha van. Ezzel egy teljesen alap üzenetküldő program minden egyes komponense a formunkon van. Az ínyenceknek megsúgom, hogy szükség lehet egy újabb Memora a naplózáshoz (ki jelentkezett be, illetve ki), egy ListBoxra az elérhető partnereknek kilistázásához, egy EditBox-ra a direkt üzenet küldéséhez (a következő számban kitérek erre is), valamint még egy gombra a „Szonár”-hoz (szintén későbbi téma). Továbbiakban a plusz (ínyenc) részekre csak futólag térek ki, az alapokat szeretném megosztani (valamint az általam írt programot, még egy-két ötlettel – keressék a CD mellékleten!). Nos erre a hónapra sajna csak ennyi fért bele, de, hogy nehogy ellustuljanak az Olvasók, a következő számig házi feladatot is adok: Tervezzék meg a form kinézetét, és nézegessék a komponensekkel kapcsolatos függvényeket, hogy minden simán menjen. Most már lassan beleélhetik magukat: nemsokára saját „chat” programunk lesz! |
Gamf Antal |