Terminal Chat Applikasyonu

Terminal Üstünden Chat Yapmanızı Sağlayacak Bir App

Bu Projeyi Geliştirebilirsiniz! Yapabileceklerinize Örnekler:

  • Şifreleme Ekleyebilirsiniz
  • DynDNS ile Yerel Ağnın dışında kullanabilirsiniz!
  • Log Tutmayı Ekleyebilirsiniz.
  • Yazışmaları Kaydedebilirsiniz.
  • Veritabanı ile Kullanıcı Kaydı oluşturup Log in ekleyebilirsiniz.
  • Bağlanmak için Şifre gerektirmesini sağlayabilirsiniz
#!/bin/python3
import socket
from threading import Thread


katilimcilar = {}
adressler = {}

HOST = '' # Host icin IP veya DynDNS giriniz
PORT = 65432 # Burda Port degistirmek isteyebilirsiniz!
BUFFERSIZE = 1024 # Paket büyüklügü
ADDR = (HOST,PORT)
SERVER = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
SERVER.bind(ADDR)

def gelen_kontrol():
    while True:
        katilimci, katilimci_adress = SERVER.accept()
        print(f"{katilimci_adress} baglandi!")
        katilimci.send(bytes("Baglanti saglandi!", "utf8"))
        adressler[katilimci] = katilimci_adress
        Thread(target=katilimci_baglantisi, args=(katilimci,)).start()


def katilimci_baglantisi(katilimci):
    isim = katilimci.recv(BUFFERSIZE).decode("utf8")
    msg = "%s baglanti sagladi" %isim
    broadcast(bytes(msg, "utf8"))
    katilimcilar[katilimci] = isim
    while True:
        msg = katilimci.recv(BUFFERSIZE)
        if msg != bytes("{cikis}", "utf8"):
            broadcast(msg, isim+": ")
            print(isim, ": ", msg)
        else:
            katilimci.send(bytes("{cikis}", "utf8"))
            katilimci.close()
            del katilimcilar[katilimci]
            broadcast(bytes("%s cikis yapti" %isim, "utf8"))
            break


def broadcast(msg, prefix=""):
    for sock in katilimcilar:
        sock.send(bytes(prefix, "utf8")+msg)

while True:
    SERVER.listen()
    print("Baglanti bekleniyor...")
    ACCEPT_THREAD = Thread(target=gelen_kontrol)
    ACCEPT_THREAD.start()
    ACCEPT_THREAD.join()
    SERVER.close()
#!/bin/python3
import socket
from threading import Thread

HOST = '' # Server IP addressini yada DynDNS giriniz!
PORT = 65432 # Server Portunu belirtiniz!
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
katilimci_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
katilimci_socket.connect(ADDR)

print("Baglanti saglandi! Kendinize bir takma isim belirleyin: ")

def main():
    while True:
        data = katilimci_socket.recv(BUFFERSIZE)
        print("Gelen mesaj: ", str(data.decode('utf8')))

    katimci_socket.close()

def mesaj_yaz():
    while True:
        print("Mesaj giriniz: ")
        message = input()
        katilimci_socket.send(message.encode("utf8"))

if __name__ == '__main__':
    ACCEPT_THREAD = Thread(target=main)
    ACCEPT_THREAD2 = Thread(target=mesaj_yaz)
    ACCEPT_THREAD.start()
    ACCEPT_THREAD2.start()
    ACCEPT_THREAD.join()
    ACCEPT_THREAD2.join()
Follow @saizzou Star

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir