Delphi mester, egy példa a chat-alapú aljzatok (dokumentáció, forráskód letölthető)

Egy példa a csevegés alapú aljzatok

Mindenki tudja, hogy a háttérben az anyagot - ez jó. De a tanulmány szinte bármilyen kérdés sokkal könnyebb, ha figyelembe vesszük azt a példát. Ezért a célja ennek a cikknek, ellentétben a korábbiakkal a témában, a tanulmány a különböző módszerek és technikák dolgozni aljzatok a szemléltető példa.







Itt nézd meg egy gyakorlati példát chat alkalmazás LAN.

Chat helyi hálózati

Vegyünk egy viszonylag egyszerű példa a chat helyi hálózatok. Ebben a példában a két alkalmazás - chat szerver és chat kliens. Chat kliensek csevegõszerverhez és üzeneteket váltanak át rajta. Csevegõszerver lehet futtatni a számítógépen, ahol az egyik az ügyfelek futtatni. Ezen kívül, hogy teszteljék akkor fut a számítógépen egyszer chat szerver és több csevegőkliense. Ehhez meg kell adnia a localhost a fogadó területen. és a Port mezőben a szerver és a kliens kell azonos értékű. Ne keverd össze a szerver a megértése a program, host ügyfél kéri, a számítógép-szerver! Ugyanaz az ügyféllel.

Forrás mindkét alkalmazás (chat szerver és chat kliens), akkor letölthető ide kattintva. Ez a példa készül a Borland Delphi 5 Azonban a kód működni fog minden változata Delphi, ahol vannak olyan komponensek TServerSocket és TClientSocket. A korábbi verziókban nem lehet probléma felfedezése formában, de ezek könnyen csinálni magadnak, mert Itt vannak a screenshotok ezeket a példákat.

Hogy ez például letöltheti a forráskódot, fordítsd a két projekt, fuss srv_ex.exe. saját ablakban, kattintson a Start gombra. A megjelenő ablakban kérelemben meg kell adni a portot, amelyen a kiszolgáló fut. Az alapértelmezett érték - 1001.







És most elemzik a forráskód a chat szerver:

Szóval, mit jelent ez a kód? Button1Click és Button2Click - Azt hiszem, egyértelmű, hogy indítsa el és állítsa le a szerver, ill. Szükség van további megfontolás ServerSocket1ClientRead.

Továbbá, összhangban s (információk, amelyeket nem szükséges) levelet parancs „#U”, és ezt követően minden felhasználó számára a listából ListBox1. Ezután az egész szöveg küldött minden partnerének.

Aztán, ha már nem „#N” és „#M” vagy „#P” (egyszerű vagy privát üzenet) - eljuttatja azt az összes ügyfél (és az általuk válogatni, akik ezt a bejegyzést :-)).

ServerSocket1ClientDisconnect - eseménykezelő, hogy akkor történik, amikor az ügyfél kapcsolata megszakad a szerverrel. Itt egyértelmű a felhasználók listáját és elküldi az összes vásárlók kérelmeket a beceneveket (szinonimák).

Megjegyzés. Ez példa egyszerűsített, amennyire csak lehetséges, hogy megértsék a technológia egyszerűen megteremtése volt ilyen alkalmazásokat. Az a lehetőség, egy normális beszélgetés legyen sokkal szélesebb. Is szem előtt tartani, hogy a parancsokat, mint a „#N”, „#U”, „#M”, stb által bevezetett fejlesztő csak meghatározni, hogy mi küldtük ki a konnektorból. Ezek a parancsok nem köti visszaélni aljzatok.

Ezután ad a forrás szöveges chat ügyfélnek a szükséges magyarázatokkal:

Először is, az adatok tárolására az s karakterláncot kapott az aljzat. Aztán, ha küldött nekünk egy listát a többi csatlakoztatott ügyfelek, mi válasszon az s karakterláncot egy felhasználó, és hozzáadja őket egymás után ListBox1. Így ListBox1 válik a felhasználók listáját.

Aztán - ha küldtünk egy csapat „#M” - egy normál üzenet, akkor válasszunk s feladó és az üzenet maga, majd mindezt a szokásos formában chat származnia, Memo1.

Ha a kérelem nem érkezett a felhasználói név (becenév) - a csapat „#N”, akkor a szerver küld a becenevét.

Edit1KeyDown kell kattintás helyett a Button1 minden alkalommal szeretnénk üzenetet küldeni, csak nyomja meg az Entert.

Barna Miklós. (Nitro) Moscow region, Zhukovsky