2016-11-19 9 views
2

Я строю простой Java-сервер, который общается с устройством Android (как клиент). В настоящее время я могу отправлять сообщения с моего телефона (клиента) на свой компьютер (сервер) через Bluetooth. Проблема в том, что я не могу отправлять сообщения с сервера обратно клиенту. Я использую библиотеку bluecave. Вот мой кодjava bluetooth server отправить сообщение обратно клиенту

public class MainTest { 
    UUID uuid = new UUID("8848",true); 
    public static void main(String[] args) { 
     LocalDevice local = null; 
     try { 
      local = LocalDevice.getLocalDevice(); 
     } catch (BluetoothStateException e) { 
      e.printStackTrace(); 
     } 
     System.out.println("Serverted:\n" +local.getBluetoothAddress() +"\n"+local.getFriendlyName()); 
     MainTest ff = new MainTest(); 
     while (true) { 
      ff.startserver(); 
     } 
    } 

    public void startserver() { 
     try { 
      String url = "btspp://localhost:" + uuid + ";name=File Server"; 
      StreamConnectionNotifier service = (StreamConnectionNotifier) Connector.open(url); 

      StreamConnection con = service.acceptAndOpen(); 
      OutputStream dos = con.openOutputStream(); 
      InputStream dis = con.openInputStream(); 

      while (true) { 
       byte buffer[] = new byte[1024]; 
       int bytes_read = dis.read(buffer); 
       String received = new String(buffer, 0, bytes_read); 
       System.out.println("Message:"+ received); 

       if("a".equals(received)) { 
        dos.write("sdfsd".getBytes()); 
        dos.flush(); 
       } 
      } 
      // con.close(); 
     } catch (IOException e) { 
      System.err.print(e.toString()); 
     } 
    } 

Я также попытался использовать PrintWriter обновленный код, но до сих пор нет ответа ...

public static void startserver() { 
     try { 
      String url = "btspp://localhost:" + uuid + ";name=TTT"; 
      StreamConnectionNotifier service = (StreamConnectionNotifier) Connector.open(url); 

      StreamConnection con = service.acceptAndOpen(); 
      DataOutputStream dos = con.openDataOutputStream(); 
      InputStream dis = con.openInputStream(); 
      PrintWriter pWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(dos)), true); 
      while (true) { 
       byte buffer[] = new byte[10]; 
       int bytes_read = dis.read(buffer); 
       String received = new String(buffer, 0, bytes_read); 
       System.out.println("Message:"+ received); 

       pWriter.write("testString"); 
       pWriter.flush(); 

      } 
      // pWriter.close(); 
      // con.close(); 


      // con.close(); 
     } catch (IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
+0

Возможный дубликат [Отправить текст через Bluetooth с Java Server на клиент Android] (http://stackoverflow.com/questions/10929767/send-text-through-bluetooth-from-java-server-to-android-client) –

ответ

0

Следующего ответа решить эту проблему, чтобы отправить текстовое сообщение от сервера к клиенту андроида: Send text through Bluetooth from Java Server to Android Client

Возможно, вы можете использовать его в своем случае.

+0

Извините, это не поможет – David