arkadaşlar merhaba,
daha önce kendim socket üzerinden istemci bilgisayara ses ve metin gönderebilmiştim. Şimdi de web server üzerinden bağlanan istemci bilgisayara ses ve metin göndermek istiyorum. araştırmalar felan yaptım ancak şu ana kadar bunu yapabildim.
Metin gönderebiliyorum ancak doğru bir kodlama mı? ve http üzerinden anlık ses gönderebilir miyim?
from http.server import BaseHTTPRequestHandler, HTTPServer
import socket
import threading
import tkinter as tk
# Sunucu ayarları
HOST_NAME = socket.gethostname()
PORT_NUMBER = 8080
# Metin mesajı için değişken
mesaj = ""
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
global mesaj
if self.path == '/':
self.send_response(200) # başarılı kodu = 200
self.send_header('Content-type', 'text/html; charset=utf-8')
self.end_headers()
response = mesaj
self.wfile.write(response.encode())
class ServerApp:
def __init__(self):
self.root = tk.Tk()
self.root.title("Sunucu")
frame = tk.Frame(self.root)
frame.pack(padx=10, pady=10)
label_mesaj = tk.Label(frame, text="Metin:")
label_mesaj.pack(side=tk.LEFT)
self.entry_mesaj = tk.Text(frame, height=8, width=12)
self.entry_mesaj.pack(side=tk.LEFT)
button_gonder = tk.Button(frame, text="Gönder", command=self.send_message)
button_gonder.pack(side=tk.LEFT)
# Sunucu thread'ini başlat
server_thread = threading.Thread(target=self.start_server)
server_thread.daemon = True
server_thread.start()
self.root.mainloop()
def send_message(self):
global mesaj
mesaj = self.entry_mesaj.get("1.0", tk.END)
self.entry_mesaj.delete("1.0", tk.END)
def start_server(self):
server_address = (HOST_NAME, PORT_NUMBER)
httpd = HTTPServer(server_address, MyHandler)
print(f"Sunucu {HOST_NAME}:{PORT_NUMBER} adresinde çalışıyor...")
httpd.serve_forever()
if __name__ == '__main__':
app = ServerApp()