Pour une application, je communique entre deux smartphones en bluetooth. Seulement mes communications doivent être rapides, je souhaite donc utiliser le protocoles UDP plutôt que du TCP.
D'habitude (en wifi ou ethernet), pour envoyer des datagrammes UDP j'utilise les classes DatagramSocket et DatagramPacket.
En bluetooth par contre j'utilise la classe BluetoothSocket.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DatagramSocket socket = new DatagramSocket(); DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), InetAddress.getByName(hostIP), port); socket.send(packet);
Je ne trouve pas d'information sur quelle est le protocole utilisé par défaut. (Cela ressemble au codage des socket pour TCP) Est-ce donc du TCP par défaut ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 BluetoothDevice device; //récupéré lors de la connection BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID); socket.connect(); OutputStream outStream = socket.getOutputStream(); outStream.write(bytes);
Ni de comment envoyer des datagrammes en bluetooth. Quelqu'un sait comment faire ?
Cela doit être possible puisque UDP est dans la couche 4 du modèle OSI alors que le bluetooth est en couche 1 et 2. Il ne devrait donc pas y avoir de souci.
Partager