对讲机在Python中怎么实现?
图形界面: 用 Tkinter 来写一个界面了。
首先把窗体画出来。
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)
然后把刚才的网络部分加上去。
import thread
from SimpleXMLRPCServer import SimpleXMLRPCServer
from xmlrpclib import ServerProxy
# 第一个对讲机
my_server = SimpleXMLRPCServer( ("localhost", 8002) )
your_server = ServerProxy("http://localhost:8001")
# 第二个对讲机 (需要交换一下地址)
# 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()
程序比较长, 所以另外一个终端就不写了
注意, 这里两台终端的地址是在程序中写死的。而且现在的程序只能显示最近收到的一条消息。
使用 Tkinter 中的输入框来叫用户自己输入目标机器的地址和端口。
使用 Tkinter 中的编辑框组件来显示多行消息。
点击加载更多评论>>