Python для S60: слушай сокет в отдельном потоке

Я разрабатываю игру Bluetooth на Python для устройств Nokia на базе S60. Разъемы Bluetooth в S60 оказались довольно хитрыми. По двум причинам:

  1. Я не могу выполнить мастер для нескольких подчиненных сокетов в Python, слышал, что это не может быть сделано в Python, поэтому я уже оставил это и не делаю это в любом случае.

  2. Другая часть заключается в том, что я не могу просто слушать сокет в отдельном потоке и уйти с нормальным выполнением моего приложения. Я попробовал пример кода здесь:

http://pastebin.com/f76189841

Обратите внимание, что я использую ao_callgate() при совместном использовании сокетов между потоками.


Сообщение (пока без ответа:-() можно найти здесь: http://discussion.forum.nokia.com/forum/showthread.php?t=162260

1 ответ

Решение

Я немного узнал об активных объектах. Запросы на чтение и запись отправляются на сервер Bluetooth. Но есть ограничение только одного запроса за раз.

Я создаю новый поток (скажем, t1) и вызываю его в контексте основного потока, используя ao_e32.callgate(). В том, что я жду входящего сообщения. Когда я хочу отправить сообщение через Bluetooth, я должен остановить эту тему, отправить сообщение и запустить новую тему. Но теперь проблема в том, как мне остановить поток в Python.

Модуль потоков PS доступен в Python для S60, и поверх него можно установить threding с помощью threading.py из версии Python для ПК.

Другие вопросы по тегам