Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Платформы Windows Mobile и Windows Embedded > Bluetooth, MFC и сокеты


Автор: LMnet 26.5.2011, 18:25
Здравствуйте. Пишу бакалаврскую с использованием C++ MFC. Программирую смартфон под Windows Mobile. Задача такая: передать некоторые данные от модема неподалеку к смартфона по блютусу. Данные - последовательность бит неопределенной длины. Блютус реализую при помощи сокетов. На данный момент написал класс CBluetoothSocket, который унаследовал от CAsyncSocket (хотя сейчас уже сомневаюсь в правильности решения, подумываю использовать CSocket). Написал парсер для разбора входного пакета данных. 
 Это все было предисловием smile Теперь то, что я собственно хотел узнать. Протокол bluetooth подразумевает пакетную передачу данных, причем информационное поле пакета имеет длину 0-2745 бит. Те данные, которые передаю я, врядли будут иметь такой маленький размер, то есть в один пакет не уместятся. Передаваемый пакет разобьется на части и будет передаваться по блютусу. Например, мой пакет разделится на 4 части. На приемной стороне (смартфон) будет автоматом вызываться матод OnReceive когда в приемном буфере будут какие-то данные. Но мне не ясно, OnReceive вызовется уже после того, как все 4 части моего большого пакета передадуться, либо OnReceive будет вызываться каждый раз, как приходит маленький пакет? Первый вариант подразумевает, что склеивать большой пакет мне не нужно, а во втором случае мне нужно будет руками соединять их в один большой пакет. Вроде из литературы я понял, что все должно делаться автоматом еще на уровне протокола, но все-таки я не уверен.
 И еще хотел спросить, какая практическая разница в CAsyncSocket и CSocket? Я так понял, что в CSocket решена проблема блокирования и еще ряд других и с ним проще работать. Но мне нужно, чтобы вся передача была в фоне, могу ли я использовать в таком случае CSocket? 
 Еще было бы очень хорошо найти того, кто имеет опыт в программировании bluetooth под MFC, или хотя бы получить ссылку куда-нибудь, информации об этом довольно мало, а уж тем более на русском.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)