Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Winsock bluetooth connect error, Проблема с connect 
:(
    Опции темы
garmon4ik
Дата 29.5.2009, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 31.7.2007

Репутация: нет
Всего: нет



Добрый вечер. Есть такая проблема, никак не могу передать пакет от клиента к серверу, используя протокол Bluetooth и Winsock2
Мой клиент выглядит следующим образом:
Код

    WSADATA wsd;
    WORD Version = MAKEWORD(2,2);

    if (WSAStartup(Version,&wsd)!=0) {
        printf("WSAStartup error\n");
        return 1;
    };
    SOCKET sock;
    sock = socket(AF_BTH,SOCK_STREAM,BTHPROTO_RFCOMM);
    if(sock == INVALID_SOCKET) {
        return false;
    }
    SOCKADDR_BTH sbt;
    ZeroMemory(&sbt, sizeof(SOCKADDR_BTH));
    
    BTH_ADDR* bth=new BTH_ADDR;
    long q=AddrStringToBtAddr("00:15:83:19:a1:40",bth);  // Адрес сервера
    sbt.btAddr= *bth;
    sbt.port = (DWORD)BT_PORT_ANY;
    sbt.serviceClassId = OBEXObjectPushServiceClass_UUID;
    sbt.addressFamily = AF_BTH;
    if(connect(sock,(SOCKADDR*)&sbt,sizeof(SOCKADDR_BTH))) {
        printf("Error %i",GetLastError());
    }


А вот так выглядит сервер
Код

    WSAData dt;
    if(WSAStartup(0x0202,&dt)!=0) printf("error111");
    SOCKET s;
    s=socket(AF_BTH,SOCK_STREAM,BTHPROTO_RFCOMM);
    SOCKADDR_BTH sbt;
    ZeroMemory(&sbt, sizeof(SOCKADDR_BTH));
    sbt.btAddr= 0;
    sbt.port = (DWORD)BT_PORT_ANY;
    sbt.serviceClassId = OBEXObjectPushServiceClass_UUID;
    sbt.addressFamily = AF_BTH;

    if(bind(s,(SOCKADDR*)&sbt,sizeof(sbt))==SOCKET_ERROR) printf("Errbind %i\n", GetLastError());
    listen(s,1);

    SOCKADDR_BTH sbt1;
    int len = sizeof (sbt1);
        SOCKET    ss=accept(s,(SOCKADDR*)&sbt1,&len);
    if(ss==INVALID_SOCKET)
    {
        printf("ErrAccept %i\n", GetLastError());
    }

 Мне кажется, что именно в нем проблема. При запуске обоих приложений на разных компьютерах, сервер зависает на accept, а connect клиента возвращает код ошибки 10049. Подскажите пожалуйста в чем я не прав?
PM MAIL   Вверх
garmon4ik
Дата 2.6.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 31.7.2007

Репутация: нет
Всего: нет



Если кому интересно, то я справился с проблемой. 
Достаточно выставить номер порта константным и все начинает работать. Меняем и в клиенте и сервере на что-то типа
Код

sbt.port = 6*0xFF

Всем спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.