ich würde in meinem code noch gern den usernamen in einem label anzeigen lassen.
ich bekomm das aber nicht richtig hin.
könnte mir bitte jemand helfen?
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import Tkinter
import threading
import socket
import SocketServer
import threading
import sys
import json
clientname = None
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
global clientname
self.request.send("Der Server")
#self. = self.request.recv(1024)
self.username = str("Der Benutzer")
clientname.set_user(self.username)
class Start_Server():
def set_user(self, username):
# der username kommt hier an
print("Hauptfenster hat den usernamen '%s' bekommen" % username)
def main(self):
backwin = Tkinter.Tk()
backwin.title('DMD-DATA.soft')
backwin.state('zoomed')
backwin.configure(background='black')
start_Server = Tkinter.StringVar()
l_sf1 = Tkinter.Label(backwin,textvariable=(start_Server),font=('Arial', 8, 'bold'), height=3, width=25,
fg="#000000000",justify='left')
l_sf1.place(relx=.06, rely=.965, anchor="c")
########################################################################
#
# hier moechte ich gern den usernamen anzeigen lassen
#
start_Client = Tkinter.StringVar()
l_sf2 = Tkinter.Label(backwin,textvariable=(start_Client),font=('Arial', 8, 'bold'), height=3, width=35,
fg="#000000000",justify='left')
l_sf2.place(relx=.2, rely=.965, anchor="c")
#start_Client.set(???)
########################################################################
get_IP = [TCP_IP for TCP_IP in socket.gethostbyname_ex(socket.gethostname())[2] if not TCP_IP.startswith("127.")][:1]
if TCP_IP.startswith("127."):
start_Server.set("Server nicht gestartet...\nKEIN W-LAN VERFÜGBAR!")
start_Client.set("Um den Server starten zu können,\nmuß eine W-LAN-Verbindung vorliegen!")
else:
TCP_PORT = 9090
start_Server.set("Server gestartet...\nIP-Adresse: {}".format(TCP_IP))
server = SocketServer.TCPServer((TCP_IP, TCP_PORT), MyTCPHandler)
thread = threading.Thread(target=server.serve_forever)
thread.start()
b1 = Tkinter.Button(backwin, text=("\nSTART\n"), font=('Arial', 10, 'bold'), width=20,
relief="raised", borderwidth=3, fg='#000000000', justify='center',command=lambda:self.haupt_Start(backwin))
b1.place(relx=.51, rely=.3, anchor="c")
def quit(backwin):
try:
server.shutdown()
server.server_close()
except:
pass
backwin.destroy()
sys.exit()
b2 = Tkinter.Button(backwin, text=("\nBEENDEN\n"), font=('Arial', 10, 'bold'), width=20,
relief="raised", borderwidth=3, fg='#000000000', justify='center',command=lambda:quit(backwin))
b2.place(relx=.51, rely=.45, anchor="c")
backwin.protocol("WM_DELETE_WINDOW", quit)
backwin.mainloop()
if __name__ == '__main__':
hintergrund = Start_Server()
clientname=hintergrund
hintergrund.main()