Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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.

AltStyle によって変換されたページ (->オリジナル) /