クライアントとして機能する Android デバイスを持っています。PC は Bluetooth サーバーであり、Bluecove ライブラリを使用しています。
クライアントからのコード スニペット:
btSocket = serverBt.createRfcommSocketToServiceRecord(myUuid);
btAdapter.cancelDiscovery();
btSocket.connect();
InputStream in = btSocket.getInputStream();
OutputStream out = btSocket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(out);
InputStreamReader isr = new InputStreamReader(in);
osw.write(55);
osw.flush();
out.flush();
//osw.close();
logTheEvent("Stuff got written, now waiting for the response.");
int dummy = isr.read();
logTheEvent("Servers response: "+ new Integer(dummy).toString());
そしてサーバー:
StreamConnectionNotifier streamConnNotifier = (StreamConnectionNotifier)Connector.open( connectionString, Connector.READ_WRITE );
StreamConnection incomingConnection=streamConnNotifier.acceptAndOpen();
InputStream in = incomingConnection.openInputStream();
OutputStream out = incomingConnection.openOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(out);
InputStreamReader isr = new InputStreamReader(in);
int fromClient = isr.read();
System.out.println("Got from client " + new Integer(fromClient).toString());
osw.write(999);
osw.close (); クライアントがコメント解除されると、メッセージはサーバーに転送されますが、クライアントは応答を受信できず、「ソケットは既に閉じられています」というメッセージを含む IOException がスローされます。ただし、osw.close(); クライアントとサーバーの両方がフリーズします。
双方向通信を有効にするにはどうすればよいですか? 私のコード、または PC Bluetoototh スタック、または bluecove のせいですか?