Şimdi şöyle 2 tane kod sayfam var.
import socket
import tkinter as tk
import threading
baglanti_penceresi = tk.Tk()
baglanti_penceresi.title("Server penceresi.")
baglanti_penceresi.geometry("500x300")
def server_kurulum():
host = "127.0.0.1"
port = 12345
try:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("socket oluşturuldu.")
socket_olustu = tk.Label(baglanti_penceresi, text="Soket oluşturuldu.",font="Corier 14 bold")
socket_olustu.place(x=10,y=10)
s.bind((host, port))
print("socket {} nolu porta bağlanıldı".format(port))
socket_baglandi = tk.Label(baglanti_penceresi, text="Soket {} nolu porta bağlandı.".format(port),font="Corier 14 bold")
socket_baglandi.place(x=10,y=30)
s.listen(5)
print("socket dinleniyor.")
socket_dinleniyor = tk.Label(baglanti_penceresi, text="Soket dinleniyor...",font="Corier 14 bold")
socket_dinleniyor.place(x=10,y=50)
except socket.error as msg:
print("Hata: ",msg)
def thread_func():
#Client ile bağlantı kurulursa
c, addr = s.accept()
timer_object = threading.Timer(1,thread_func)
timer_object.start()
gelen_baglanti = tk.Label(baglanti_penceresi, text="Gelen bağlantı:{}".format(addr),font="Corier 14 bold")
gelen_baglanti.place(x=10,y=40)
#Bağlanan client tarafından hoşgeldin mesajı
mesaj = "Bağlantı için teşekkürler."
c.send(mesaj.encode("utf-8"))
#Son
c.close()
thread_func()
server_kurulum()
baglanti_penceresi.mainloop()
ve
import socket
import tkinter as tk
pencere = tk.Tk()
pencere.title("Bağlantı test penceresi")
pencere.geometry("300x300")
def baglanti():
#socket oluşturulması
s = socket.socket()
#bağlanılacak adres ve port
host = "localhost"
port = 12345
try:
#bağlantıyı yap
s.connect((host, port))
#server yanıtı al
yanit = s.recv(1024)
print(yanit.decode("utf-8"))
baglan = tk.Label(pencere, text="Bağlantı Kuruldu.",font="Coruier 14 bold")
baglan.place(x=10,y=10)
#bağlantıyı kapat
s.close()
except socket.error as msg:
print("[server aktif değil.] Mesaj: ",msg)
buton = tk.Button(pencere, text="Kur.",font="Coruier 14 bold",command=baglanti)
buton.place(x=10,y=60)
baglanti()
pencere.mainloop()
ilk sayfa uygulamannın server kısmı. Diğer kısım ise client olan kısım. Önce server olanı başlatıyoruz, sonra ise client. Client'ın tkinter penceresinde bir "kur" denen bir buton var. O butona basınca server penceresinde "bağlantı kuruldu" diye yazıyor. Neyse.
Ama asıl sorun şu;
İlk önce server kısmını açıyoruz. Ama server kısmnın tkinter bölümü açılmıyor. Neyse devam ediyoruz; sonrasında client bölümünü açıyoruz. Ve hem client penceresi açılıyor hem de server.
Anladığım kadarıyla, server bölümüne bir paket gittiği zaman(aynı client'i açınca paket gittiği gibi) server penceresi açılıyor. Yani, önce clienti açmadan server bölümüne bir paket gönderelim diyelim. Uğraştım, yapamadım. Yardımınızı beklerim.