套接字数据的Tkinter延迟

时间:2018-07-02 11:37:06

标签: python sockets tkinter

我编写了一个客户端/服务器应用程序。我从以bool类型输出的服务器接收数据。如您所知,我在客户端中接收的数据以字节为单位,因此我将其解码为字符串,然后解码为整数类型。取决于数据值,我想在标签中显示一些信息。该程序实际上执行了我想要的操作,但是在出现第一条消息后却没有显示该信息。在查看已发送数据的迭代之后,标签将打开并根据需要更改其值。怎么了?如果程序可以运行,为什么在最初的几次迭代中循环不能正常工作,但是后来循环了?

#!/usr/bin/env python
import socket
import tkinter as tk

TCP_IP = '192.168.0.15'
TCP_PORT = 62
BUFFER_SIZE = 4096
data = b''

def counter_label(label)
  def count(label):
    global data
    data = s.recv(BUFFER_SIZE)      
    dane_str = data.decode("utf-8")        
    dane_int = int(dane_str) 

    if dane_int != 0:
      psa=15
    else:
      psa = 22
    label.config(text=str(psa))
    label.after(1, count)

  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect((TCP_IP, TCP_PORT))

  root = tk.Tk()

  label = tk.Label(root, fg="green", font="Verdana 200 bold")
  label.pack()
  counter_label(label)

  root.mainloop()

0 个答案:

没有答案