import appuifw, socket, e32
ECHO = True
def choose_service(services):
names = []
channels = []
for name, channel in services.items():
names.append(name)
channels.append(channel)
index = appuifw.popup_menu(names, u"Choose service")
return channels[index]
def read_and_echo(fd):
buf = r = ""
while r != "\n" and r != "\r":
r = fd.read(1)
if ECHO: fd.write(r)
buf += r
if ECHO: fd.write("\n")
return buf
address, services = socket.bt_discover()
channel = choose_service(services)
conn = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
conn.connect((address, channel))
to_peer = conn.makefile("rw", 0)
while True:
msg = appuifw.query(u"Send a message", "text")
if msg:
print >> to_peer, msg + "\r"
print "Sending: " + msg
print "Waiting for reply..."
reply = read_and_echo(to_peer).strip()
appuifw.note(unicode(reply), "info")
if reply.find("bye!") != -1:
break
else:
break
to_peer.close()
conn.close()
print "bye!"