/examples/simple/rfcomm-server.py

http://pybluez.googlecode.com/ · Python · 41 lines · 25 code · 10 blank · 6 comment · 4 complexity · 85ad9b2b3ab1a8d19c0b424eb580e502 MD5 · raw file

  1. # file: rfcomm-server.py
  2. # auth: Albert Huang <albert@csail.mit.edu>
  3. # desc: simple demonstration of a server application that uses RFCOMM sockets
  4. #
  5. # $Id: rfcomm-server.py 518 2007-08-10 07:20:07Z albert $
  6. from bluetooth import *
  7. server_sock=BluetoothSocket( RFCOMM )
  8. server_sock.bind(("",PORT_ANY))
  9. server_sock.listen(1)
  10. port = server_sock.getsockname()[1]
  11. uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
  12. advertise_service( server_sock, "SampleServer",
  13. service_id = uuid,
  14. service_classes = [ uuid, SERIAL_PORT_CLASS ],
  15. profiles = [ SERIAL_PORT_PROFILE ],
  16. # protocols = [ OBEX_UUID ]
  17. )
  18. print("Waiting for connection on RFCOMM channel %d" % port)
  19. client_sock, client_info = server_sock.accept()
  20. print("Accepted connection from ", client_info)
  21. try:
  22. while True:
  23. data = client_sock.recv(1024)
  24. if len(data) == 0: break
  25. print("received [%s]" % data)
  26. except IOError:
  27. pass
  28. print("disconnected")
  29. client_sock.close()
  30. server_sock.close()
  31. print("all done")