Задача: написать приложение для обмена AT-командами с мобильным телефоном через блютуз. Работаю через стандартный windows-драйвер Код (Text): //Создаю сокет SOCKADDR_BTH Addr; memset(&Addr,0,sizeof(Addr)); Addr.addressFamily=AF_BTH; Addr.btAddr=bDeviceInfo.Address.ullLong; Addr.port=BT_PORT_ANY; Addr.serviceClassId=DialupNetworkingServiceClass_UUID; int rc=connect(s,(sockaddr *)&Addr,sizeof(Addr)); //коннект создается удачно, пробуем передавать данные if(rc==0){ char sb[100]="ATZ\n",rb[100]; int r=0; do{ Sleep(2000); r=send(s,sb,strlen(sb),0); printf("result=%i buffer=%s \n",r,sb); r=recv(s,rb,100,0); if(r>0){ r[r]='\0'; printf("result=%i buffer=%s\n",r,rb); } }while(r>0); } При этом сокет возвращает мне то же самое что я в него пишу например: result=4 buffer=ATZ result=4 buffer=ATZ result=4 buffer=ATZ result=4 buffer=ATZ и так до бесконечности. Чуствую разгадка проста и где-то рядом, но бьюсь уже 5 дней и бестолку. Буду благодарен за любые идеи и догадки
отож я идиот!!!!!!!!!!!!!!!! почему-то решил что \n в си++ это и есть виндовый конец строки 13,10. Четыре дня смотрю на эти 4 символа и не могу допетрить что должно быть 5!!! Спасибо огроменное!! добавил /r и всё заработало!!!!!!!