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?
- #!/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()