Problème de socket de communication bluetooth sous visual c++

mrbozzo
Messages postés
11
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
4 avril 2007
- 6 mars 2007 à 00:43
kabayi
Messages postés
2
Date d'inscription
dimanche 6 mars 2011
Statut
Membre
Dernière intervention
29 avril 2011
- 29 avril 2011 à 04:12
Bonjour à tous!

Voilà, je recherche un code de communication bluetooth, qui accepte tout périphérique.

Je vous transmet mon code :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="Generator" content="Kate, the KDE Advanced Text Editor" />#include <Winsock2.h>#include <Ws2bth.h>#include

typedef struct {
    short BDAddr[6];
    short BDName[BLUETOOTH_MAX_NAME_SIZE];
} BT_DEVICE_INFO;

SOCKET btClientSocket = INVALID_SOCKET;
SOCKET btServerSocket = INVALID_SOCKET;
WSAEVENT btEvent = WSA_INVALID_EVENT;

short BTListenDevice() {
    WSADATA wsaData;
    SOCKADDR_BTH SockAddr = {0};
    short Result;
    SockAddr.addressFamily = AF_BTH;
    SockAddr.port = BT_PORT_ANY;
    if (btServerSocket != INVALID_SOCKET) return -1;
    if (WSAStartup(WINSOCK_VERSION, &wsaData) != 0) return -1;
    if (wsaData.wVersion == WINSOCK_VERSION)
        btServerSocket = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM); 
    if (btServerSocket == INVALID_SOCKET) { WSACleanup(); return -1; } // ce test est toujours vrai!!!
    btEvent = WSACreateEvent();
    if (btEvent != WSA_INVALID_EVENT)
        if (WSAEventSelect(btServerSocket, btEvent, FD_ACCEPT|FD_CLOSE|FD_READ|FD_WRITE) == 0) {
            if (bind(btServerSocket, (SOCKADDR *) &SockAddr, sizeof(SockAddr)) == 0)
                if (listen(btServerSocket, 1) == 0) return 1;
        }
    Result = WSAGetLastError();
    BTCloseDevice();
    return Result;
}

short BTListenDevice() {
    WSADATA wsaData;
    SOCKADDR_BTH SockAddr = {0};
    short Result;
    SockAddr.addressFamily = AF_BTH;
    SockAddr.port = BT_PORT_ANY;
    if (btServerSocket != INVALID_SOCKET) return -1;
    if (WSAStartup(WINSOCK_VERSION, &wsaData) != 0) return -1;
    if (wsaData.wVersion == WINSOCK_VERSION)
        btServerSocket = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
    if (btServerSocket == INVALID_SOCKET) { WSACleanup(); return -1; }
    btEvent = WSACreateEvent();
    if (btEvent != WSA_INVALID_EVENT)
        if (WSAEventSelect(btServerSocket, btEvent, FD_ACCEPT|FD_CLOSE|FD_READ|FD_WRITE) == 0) {
            if (bind(btServerSocket, (SOCKADDR *) &SockAddr, sizeof(SockAddr)) == 0)
                if (listen(btServerSocket, 1) == 0) return 1;
        }
    Result = WSAGetLastError();
    BTCloseDevice();
    return Result;
}

short TestServer() {
    short Result;
    if (BTListenDevice() != 1) return -1;
    Result = BTAcceptDevice();
    if (Result != 1) {
        if (Result != WSAEWOULDBLOCK) return -1;
        do {
            Result = BTCheckEvent(2);
            if (Result == -1) {
                BTCloseDevice(); return -1;
            }
        } while (Result == 0);
    } return 1;
}

// fin du code

Donc quand jelance le testServer, la creation du socket serveur ne fonctionne pas, pourtant j'ai un dongle bluetooth, les dll qu'il faut, j'ai des progs qui tournent sous bluetooth

Voilà, si vous avez des suggestions, je suis à votre écoute
Code horrible, mauvaise gestion, erreur d'importation, je suis à votre écoute

N'hésitez pas à vous déchainer, si vous voyez des abérations, la passion c'est quelque chose qui doit se vivre à fond ;)

[yellow]MrBOZZO/yellow

3 réponses

mrbozzo
Messages postés
11
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
4 avril 2007

2 avril 2007 à 17:48
Bon, voilà, c'est la fête...

Mon prob était du à mon système propre à ma machine, car ça marche chez un pote.

Par contre, on a du virer bluesoleil de chez lui, pour faire fonctionner complètement le code, car comme c'est utilisé avec le sdk, et que justement, bluesoleil est une appli qui n'agit pas à l'aide de windows, mais bien à sa place, les fonctions du sdk ne pouvaient fonctionner!

Donc si vous voulez faire du bluetooth en dure via le sdk, soyez certain que votre clé utilise les pilotes windows par defaut.

Bonne prog à tous :)
0
kabayi
Messages postés
2
Date d'inscription
dimanche 6 mars 2011
Statut
Membre
Dernière intervention
29 avril 2011

29 avril 2011 à 04:09
j'ai voulu teste ton code mais il me sors des erreur comme koi il ne comprends pas les fonctions telque BtClosedevice ,ChekEvent ,BTAcceptDevice ..je ne comprend pas bien ..en plus si l'on fait une declaration du type short TestServer () il faut ajouter ; sinon il souligne l'accolade ..des explication ??
0
kabayi
Messages postés
2
Date d'inscription
dimanche 6 mars 2011
Statut
Membre
Dernière intervention
29 avril 2011

29 avril 2011 à 04:12
je suis entrain de vouloir faire un server bluetooth qui ecoute des connection des portable et envoit des donnée donnée a d'autre mais rien n'y est pas tuto pas de code qui marche ??des piste pour moi??
0