Блютуз сокеты

Тема в разделе "WASM.BEGINNERS", создана пользователем konst55, 2 фев 2009.

  1. konst55

    konst55 New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2009
    Сообщения:
    5
    Задача: написать приложение для обмена AT-командами с мобильным телефоном через блютуз.
    Работаю через стандартный windows-драйвер

    Код (Text):
    1. //Создаю сокет
    2.  
    3. SOCKADDR_BTH Addr;
    4. memset(&Addr,0,sizeof(Addr));
    5. Addr.addressFamily=AF_BTH;
    6. Addr.btAddr=bDeviceInfo.Address.ullLong;
    7. Addr.port=BT_PORT_ANY;
    8. Addr.serviceClassId=DialupNetworkingServiceClass_UUID;
    9.  
    10. int rc=connect(s,(sockaddr *)&Addr,sizeof(Addr));
    11.  
    12. //коннект создается удачно, пробуем передавать данные
    13.  
    14. if(rc==0){
    15.     char sb[100]="ATZ\n",rb[100];
    16.     int r=0;
    17.    do{
    18.        Sleep(2000);
    19.        r=send(s,sb,strlen(sb),0);
    20.        printf("result=%i buffer=%s \n",r,sb);
    21.  
    22.  
    23.       r=recv(s,rb,100,0);
    24.       if(r>0){
    25.           r[r]='\0';
    26.           printf("result=%i buffer=%s\n",r,rb);
    27.       }
    28.    }while(r>0);
    29. }
    При этом сокет возвращает мне то же самое что я в него пишу например:
    result=4 buffer=ATZ
    result=4 buffer=ATZ
    result=4 buffer=ATZ
    result=4 buffer=ATZ

    и так до бесконечности.

    Чуствую разгадка проста и где-то рядом, но бьюсь уже 5 дней и бестолку.
    Буду благодарен за любые идеи и догадки
     
  2. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Ты предаешь ATZ,13. Длина как раз 4.
    попробуй ATZ,13,10 передать.
     
  3. konst55

    konst55 New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2009
    Сообщения:
    5
    отож я идиот!!!!!!!!!!!!!!!!

    почему-то решил что \n в си++ это и есть виндовый конец строки 13,10.
    Четыре дня смотрю на эти 4 символа и не могу допетрить что должно быть 5!!!

    Спасибо огроменное!! добавил /r и всё заработало!!!!!!!