Skip to content

huser123/Python_LAN_chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Egyszerű Python Chat Alkalmazás

Ez egy egyszerű Python-alapú szerver-kliens chat alkalmazás, amely hálózati kommunikációt valósít meg ugyanazon alhálón belül. A projekt célja, hogy a diákok megismerkedjenek az alapvető hálózati programozási koncepciókkal, mint például a socketek és több szálú folyamatok használata.

Jellemzők

  • Több kliens egyidejű kiszolgálása.
  • Kliens azonosító megadása.
  • Privát üzenetek küldése az azonosítók alapján.
  • Minden kliensnek szóló üzenetek küldése.
  • Egyszerű grafikus felhasználói felület (GUI) támogatása a Tkinter segítségével.

Telepítés és futtatás

1. Szerver indítása

A szerver kódja a szerver.py. Futtatásához:

python szerver.py
  • A szerver alapértelmezett IP-címe: 0.0.0.0 (minden interfész figyelése).
  • Az alapértelmezett port: 12345.
  • A szerver terminálján megjelennek a csatlakozó kliensek és az üzenetküldések részletei.

2. Kliens indítása

A kliens kétféleképpen indítható:

Terminál alapú kliens

A terminálos kliens kódja a kliens.py. Futtatásához:

python kliens.py
  • A futtatás után a kliens megkérdezi az azonosítót.
  • Az üzeneteket az alábbi formátumban lehet küldeni:
    • Privát üzenet: SEND:<cél_azonosító>:<üzenet>
    • Mindenkinek szóló üzenet: ALL:<üzenet>

GUI alapú kliens

A grafikus kliens kódja a kliensgui.py. Futtatásához:

python kliens-gui.py
  • A futtatás után a felhasználónak meg kell adnia az azonosítóját.
  • A GUI lehetőséget biztosít:
    • Címzett kiválasztására (egyedi azonosító vagy „ALL” a broadcast üzenetekhez).
    • Üzenetek beírására és küldésére egy gombbal vagy az Enter billentyűvel.
    • Fogadott üzenetek megtekintésére egy görgethető szövegmezőben.

Példa működésre

  1. Indítsd el a szervert egy terminálban.
  2. Indíts két vagy több klienst külön terminálokban vagy GUI-ban.
  3. Az egyik kliens küldhet üzenetet a másiknak:
    SEND:azonosito1:Hello, hogyan vagy?
    
  4. Az összes kliensnek szóló üzenet:
    ALL:Ez egy üzenet mindenkinek!
    

Fontos megjegyzések

  • Az alkalmazás csak az azonos alhálón lévő eszközök között működik.
  • A szerver és a kliensek közötti kommunikáció TCP-alapú, ezért stabil kapcsolat szükséges.
  • A kód oktatási célokra készült, és nem tartalmaz fejlett biztonsági funkciókat.

Kód magyarázat

Szerver

A szerver fogadja a kliensek kapcsolatait, és egyedi azonosítókat kezel:

  • kezeles függvény: Egy-egy kliens kommunikációjának kezelése.
  • Privát üzenetküldés: Az azonosító alapján a megfelelő kliensnek továbbítja az üzenetet.
  • Broadcast: Az összes kliensnek továbbítja az üzenetet, kivéve a küldőt.

Terminálos Kliens

A terminálos kliens kapcsolatot létesít a szerverrel, és valós idejű üzenetküldést biztosít:

  • fogadas függvény: A szervertől érkező üzenetek kezelése.
  • Az azonosító bekérése után a felhasználó szabadon küldhet üzeneteket más klienseknek.

GUI Kliens

A GUI kliens a Tkinter könyvtárat használja az interaktív felület megvalósításához:

  • Üzenetek fogadása: A szerverről érkező üzenetek megjelenítése egy görgethető szövegmezőben.
  • Üzenetek küldése: Címzett kiválasztása és üzenet beírása után az Enter gombbal vagy küldés gombbal lehet üzenetet küldeni.
  • Párhuzamos működés: A fogadási folyamat külön szálon fut, így a GUI zavartalanul használható.

Licenc

Ez a kód szabadon használható és módosítható oktatási célokra.