BluetoothSocket accept() IOException

P

Peter123

Fortgeschrittenes Mitglied
8
Ich möchte zwischen zwei Geräten eine Bluetoothverbindung herstellen.
Das funktioniert auch soweit, jedoch gibt es dabei ein Problem:

Auf dem Gerät von welchem ich connecte wird mir bei
Code:
try {
                    // This is a blocking call and will only return on a
                    // successful connection or an exception
                    socket = mmServerSocket.accept();
                } catch (IOException e) {
                    Log.e(TAG, "Socket Type: " + mSocketType + "accept() failed", e);
                    break;
                }

eine IOException ausgeworfen:


BluetoothChatService Socket Type: nullaccept() failed
BluetoothChatService java.io.IOException: Operation Canceled


Dies hat zur Folge, dass dieses Gerät dann keine Daten vom anderen Gerät empfangen kann. Das Senden der Daten funktioniert aber einwandfrei.
 
Peter123 schrieb:
Auf dem Gerät von welchem ich connecte wird mir bei

Wenn ich dich richtig verstehe Baust du eine BT-Verbinung als Client auf. Also hast du bereits einen gültigen BluetoothSocket über den du sendest was ja auch funktioniert.

Peter123 schrieb:
Dies hat zur Folge, dass dieses Gerät dann keine Daten vom anderen Gerät empfangen kann. Das Senden der Daten funktioniert aber einwandfrei.

Das verstehe ich nicht. Wenn das Senden funktioniert, dann hast du bereits einen Socket. Wenn du bereits einen Socket hast, brauchst du
"socket = mmServerSocket.accept();" nicht mehr aufrufen. Das brauchst du nur wenn das Gerät als Server fungiert. Und das widerspricht sich zu meiner Vermutung von oben.

Woher bekommst du deinen
mmServerSocket ?
 
Zuletzt bearbeitet:
Meinen mmServerSocket bekomme ich hiermit:

Code:
 try {
    //tmp = mAdapter.listenUsingRfcommWithServiceRecord(NAME, MY_UUID);
    tmp = InsecureBluetooth.listenUsingRfcommWithServiceRecord(mAdapter, NAME, MY_UUID, true);
            	
     } catch (IOException e) {
          Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e);
      }
         mmServerSocket = tmp;
 
Wie siehts den mit meinen anderen Fragen aus?
Du forderst ja entweder eine Verbindung als Client an oder du wartest auf eine Verbindung als Server.
Wenn ich dich richtig verstehe agierst du als Client und dann brauchst du keinen ServerSocket und kein accept().
Evtl verstehe ich dich aber auch nur falsch.
 

Ähnliche Themen

N
Antworten
8
Aufrufe
1.002
NerkJ
N
P
Antworten
1
Aufrufe
1.014
DieGoldeneMitte
DieGoldeneMitte
J
  • jeffroid
Antworten
2
Aufrufe
1.021
jeffroid
J
Zurück
Oben Unten