Задержка Tkinter для данных сокета - PullRequest
0 голосов
/ 02 июля 2018

Я написал клиент-серверное приложение. Я получаю данные с сервера, который выходит как тип 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...