Я хочу отправить сообщение сразу после подключения устройства.
Итак, я начинаю прослушивать входящие соединения:
public static void StartListen(BluetoothDeviceInfo foundDevice)
{
try
{
_listener = new BluetoothListener(_serviceClass);
_listener.Start();
_listener.BeginAcceptBluetoothClient(AcceptBluetoothClientCallback, _listener);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
Затем я принимаю соединение асинхронно:
private static void AcceptBluetoothClientCallback(IAsyncResult ar)
{
_client = _listener.AcceptBluetoothClient();
var stream = _client.GetStream();
var data = "hello";
stream.Write(Encoding.ASCII.GetBytes(data), 0, data.Length);
Console.WriteLine($"canRead: {stream.CanRead}");
Console.WriteLine($"canWrite: {stream.CanWrite}");
_client.Close();
}
Но AcceptBluetoothClient
блокируетвызов.Так что я не получаю клиента, пока другая часть не отправит что-то.Есть ли способ получить клиент / поток до этого события?