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