對(duì)講機(jī)在Python中怎么實(shí)現(xiàn)?
圖形界面: 用 Tkinter 來寫一個(gè)界面了。
首先把窗體畫出來。
from Tkinter import *
wnd = Tk()
wnd.lab = Label(wnd, text="---")
wnd.ent = Entry(wnd)
wnd.btn = Button(wnd, text="send")
wnd.lab.pack()
wnd.ent.pack(side=LEFT)
wnd.btn.pack(side=LEFT)
然后把剛才的網(wǎng)絡(luò)部分加上去。
import thread
from SimpleXMLRPCServer import SimpleXMLRPCServer
from xmlrpclib import ServerProxy
# 第一個(gè)對(duì)講機(jī)
my_server = SimpleXMLRPCServer( ("localhost", 8002) )
your_server = ServerProxy("http://localhost:8001")
# 第二個(gè)對(duì)講機(jī) (需要交換一下地址)
# my_server = SimpleXMLRPCServer( ("localhost", 8001) )
# your_server = ServerProxy("http://localhost:8002")
def msg(s):
wnd.lab.config(text=s)
return True
def run_server():
my_server.register_function(msg)
my_server.serve_forever()
def send():
msg = wnd.ent.get()
wnd.ent.select_range(0, len(msg))
your_server.msg(msg)
wnd.btn.config(command=send)
thread.start_new_thread( run_server, () )
wnd.mainloop()
程序比較長(zhǎng), 所以另外一個(gè)終端就不寫了
注意, 這里兩臺(tái)終端的地址是在程序中寫死的。而且現(xiàn)在的程序只能顯示最近收到的一條消息。
使用 Tkinter 中的輸入框來叫用戶自己輸入目標(biāo)機(jī)器的地址和端口。
使用 Tkinter 中的編輯框組件來顯示多行消息。
點(diǎn)擊加載更多評(píng)論>>