0
我有這個在端口上監聽的小程序。我想要實現的是,當來自網絡的數據到達時,它應該將窗口顏色更改爲該數據。我應該如何修改我的代碼?當網絡數據到達時,定期更改窗口顏色
#!/usr/bin/env python
from Tkinter import Tk
import time
import socket
window = Tk()
window.geometry("266x208")
window.title("Claculator")
window.configure(background='#ffffff')
window.mainloop()
TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 20 # Normally 1024, but we want fast response
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data #here comes the data color and it should call window color change
conn.send(data) # echo
conn.close()
這是相當尷尬的。只要窗口保持打開狀態,'window.mainloop()'將無限期地運行。 while 1:'循環只要有更多的數據要接收就會無限期地運行。您通常不能同時運行兩個無限循環。 – Kevin
你嘗試過'.after()'方法嗎? [檢查出來](http://effbot.org/tkinterbook/widget.htm#Tkinter.Widget.after-method)。如果沒有,請嘗試一下。 –