Local chat uygulamam çalışmıyor

lew4k

Hectopat
Katılım
3 Mayıs 2022
Mesajlar
51
Daha fazla  
Cinsiyet
Erkek
Kod:
Server kodu:
From socket import AF_INET, socket, SOCK_STREAM
From threading import Thread
Clients = {}
Address = {}
HOST = "127.0.0.1"
PORT = 23456
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
SERVER = socket(AF_INET, SOCK_STREAM)
SERVER. Bind(ADDR)
Def yayin(msg, kisi=""):
 For yayin in clients:
 Yayin. Send(bytes(kisi,"utf8")+msg)

Def gelen_mesaj():
 While True:
 Client, client_address = SERVER.accept()
 Print(F"{client_address} bağlandi")
 Client. Send(bytes("benim chat uygulamam \n","utf8"))
 Client. Send(bytes("adinizi giriniz:","utf8"))
 Address[client] = client_address
 Thread(target=baglan_clien,args=(client,)).start()

Def baglan_clien(Client):
 İsim = Client. Recv(BUFFERSIZE).decode("utf8")
 Hoş geldin = "hoş geldin %s! Cikmak icin {cikis} yaziniz"%isim
 Client. Send(bytes(hoş geldin,"utf8"))
 Msg = F"{isim} chat kanalina bağlandi"
 Yayin(bytes(msg,"utf8"))
 Clients[client] = isim
 While True:
 Msg = Client. Recv(BUFFERSIZE)
 İf msg!= bytes("{cikis}","utf8"):
 Yayin(msg, isim + ":")
 Else:
 Client. Send(bytes("{cikis}","utf8"))
 client.close()
 Del clients[client]
 Yayin(bytes(F"{isim} yayin kanalindan çikis yapti","utf8"))
 Break
İf __name__ == "__main__":
 SERVER. Listen(10)
 Print("bağlanti bekleniyor...")
 ACCEPT_THERAD = Thread(target = gelen_mesaj)
 ACCEPT_THERAD.start()
 ACCEPT_THERAD.join()
 SERVER.close()
Client kodu:
From socket import AF_INET, socket, SOCK_STREAM
From threading import Thread
İmport Tkinter
HOST = "127.0.0.1"
PORT = 23456
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
Client_socket = socket(AF_INET, SOCK_STREAM)
Client_socket. Connect(ADDR)
Def gelen_mesaj():
 While True:
 Try:
 Msg = client_socket. Recv(BUFFERSIZE).decode("utf8")
 Mesaj_listesi. İnsert(Tkinter. END, msg)
 Except:
 Break
Def gonder(Event = None):
 Msg = mesajim.get()
 Mesajim. Set("")
 Client_socket. Send(bytes(msg,"utf8"))
 İf msg == "{cikis}":
 client_socket.close()
 app.quit()
Def cikis_durumu():
 Mesajim. Set("{cikis}")
 gonder()
App = tkinter.Tk()
App. Title("chat uygulamasi")
Mesaj_alani = Tkinter. Frame(App)
Mesajim = tkinter.StringVar()
Mesajim. Set("mesaj gir")
Scrollbar = Tkinter. Scrollbar(mesaj_alani)
Mesaj_listesi = Tkinter. Listbox(mesaj_alani, height = 20, width = 70, yscrollcommand = scrollbar. Set)
Mesaj_listesi. See("end")
scrollbar.pack()
Gonder_buton = Tkinter. Button(App, text="gonder",command=gonder())
App. Protocol("WM_DELETE_WINDOW",cikis_durumu)
İf not PORT:
 PORT = 23456
Else:
 PORT = int(PORT)
Gelen_thread = Thread(target = gelen_mesaj)
gelen_thread.start()
tkinter.mainloop()
Çalıştırdığımda böyle kalıyor:



Başka bir bilgisayardan aynı kodları çalıştırdığımda:



Bu görüntü oluyor. Gönder butonu çalışmıyor, normalde ilk yazdığının ismi olamasını istiyordum fakat bu yazı çıkıyor aynı bilgisayardan server ve 2 Client dosyası çalışınca en azından birbirleri arasında mesaj gönderebiliyorlar aynı ağda denediğimde ise hata alıyorum.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…