Modern, güvenli ve kullanımı kolay Peer-to-Peer sohbet uygulaması
- 🚀 Anında Başlat - Kurulum gerektirmez, çalıştır ve konuş
- 🔍 Otomatik Keşif - Ağdaki diğer kullanıcıları tek tıkla bul
- 🛡️ Güvenli - Onaylamadığınız kişiler size mesaj atamaz
- 🎨 Modern Arayüz - Dark theme, kullanımı kolay GUI
- 📱 Kullanıcı Dostu - Username, IP ve port bilgileri açıkça görünür
- 🔌 Sunucusuz - Merkezi sunucu yok, direkt P2P bağlantı
- 🌐 Cross-Platform - Windows, Linux ve macOS
- Python 3.8+ (Sadece standart kütüphane)
git clone https://github.com/sonergunes741/P2P_Chat_Python.git
cd P2P_Chat_Pythonpython gui_main.pyİlk açılışta:
- Kullanıcı Adı gir
- Port seç (varsayılan: 5000)
- START SESSION butonuna bas
🔒 Firewall Uyarısı: İlk açılışta Windows/macOS firewall izin isteyecektir - Allow/İzin Ver seçeneğini seçin.
- SCAN NETWORK butonuna bas
- Found Peers listesinden birini seç
- CONNECT butonuna bas
- Karşı tarafta ACCEPT/REJECT butonları görünür
- ACCEPT denirse bağlantı kurulur
- Bağlı olduğun kişiler "Connected Peers" listesinde ✓ işaretiyle görünür
- Alt kısımdaki mesaj kutusuna yaz ve SEND bas veya Enter'a bas
- Connected Peers'dan birini seç
- DISCONNECT butonuna bas
Farklı portlar kullanarak aynı PC'de birden fazla kullanıcı oluştur:
Terminal 1:
python gui_main.py
# Port: 5000, Username: AliTerminal 2:
python gui_main.py
# Port: 5001, Username: VeliScan yap → Birbirinizi bulun → Bağlanın!
P2P_Chat_Python/
├── src/
│ ├── gui.py # Ana GUI (Tkinter)
│ ├── peer.py # Peer yönetimi
│ ├── discovery.py # UDP broadcast keşif
│ ├── connection.py # TCP bağlantı yöneticisi
│ ├── protocol.py # Mesaj protokolü
│ └── startup_dialog.py # Başlangıç ekranı
├── gui_main.py # GUI başlatıcı
├── main.py # CLI başlatıcı
└── README.md
Q: Diğer kullanıcıları göremiyorum?
- Aynı Wi-Fi/LAN ağında olduğunuzdan emin olun
- Firewall izinlerini kontrol edin (TCP 5000, UDP 5001)
Q: Bağlantı kuruluyor ama mesaj alamıyorum?
- Karşı tarafın bağlantıyı ACCEPT ettiğinden emin olun
- Connected Peers listesinde ✓ işareti görünmeli
Q: Farklı port nasıl kullanırım?
- Startup Dialog'da port dropdown'ından seçin
- CLI:
python gui_main.py --port 5002
python main.py --port 5000Komutlar:
discover- Ağı taraconnect <IP>- Bağlansend <mesaj>- Mesaj gönderexit- Çıkış
pip install pyinstaller
python build.pydist/P2P_Chat.exe oluşacak
- Discovery: UDP Broadcast (Port 5001)
- Communication: TCP (Port 5000+ seçilebilir)
- Protocol: JSON-based message format
- Handshake: Connection Request/Accept/Reject
- Threading: Async message handling
- Soner Güneş (240104004201)
- Ömer Faruk Olkay (210104004039)
- Ahmet Baha Çepni (2101040040xx)
MIT License - Educational Purpose Project
Ağ Programlama Dersi | Network Programming Course