32-футовая библиотека .NET не может подключитьсяC#

Место общения программистов C#
Ответить
Anonymous
 32-футовая библиотека .NET не может подключиться

Сообщение Anonymous »

Я создаю приложение Winforms, используя 32-футовую библиотеку .NET, чтобы использовать Bluetooth для подключения к другим устройствам. При подключении к наушнику все прошло успешно, но когда я пытаюсь подключиться к другому компьютеру или смартфону, я получаю следующую ошибку:

System.Net. Sockets.SocketException: 'Запрошенный адрес недействителен в своем контексте. 5C9000000:00001101-0000-1000-8000-00805f9b34fb (0)'

Я написал функцию, которая показывает диалоговое окно, когда другое устройство хочет подключиться к мое устройство.
Вот мой код:

Код: Выделить всё

using InTheHand.Net;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;

namespace WinFormsApp1
{
public partial class Bluetooth_Adapter : Form
{
private BluetoothClient client;
private BluetoothDeviceInfo[] devices;
private BluetoothListener listener;

public Bluetooth_Adapter()
{
InitializeComponent();
}

private async void Bluetooth_Adapter_Load(object sender, EventArgs e)
{
await ListenForConnection();
}

private async void btnScan_Click(object sender, EventArgs e)
{
await ScanDevicesAsync();
}

private void btnConnect_Click(object sender, EventArgs e)
{
if (listDevice.SelectedIndex < 0)
{
MessageBox.Show("Please choose 1 device");
return;
}

try
{
var selectedDevice = devices[listDevice.SelectedIndex];
var address = selectedDevice.DeviceAddress;

bool paired = BluetoothSecurity.PairRequest(address, null);

if (!paired)
{
MessageBox.Show("Failed to pair with the device");
return;
}
//

richTextBoxLogs.AppendText($"Attempting to connect to address: {address}\n");

client.Connect(address, BluetoothService.SerialPort);

richTextBoxLogs.AppendText($"Connected Device:\n");
richTextBoxLogs.AppendText($"Name: {selectedDevice.DeviceName}\n");
richTextBoxLogs.AppendText($"Address: {selectedDevice.DeviceAddress}\n");
richTextBoxLogs.AppendText($"Class: {selectedDevice.ClassOfDevice}\n");
richTextBoxLogs.AppendText("--------------------------------------------");

}
catch (Exception ex)
{
MessageBox.Show("Error in connecting: " + ex.Message);
}
}

private void btnDisconnect_Click(object sender, EventArgs e)
{
try
{
if (client != null)
{
client.Close();
richTextBoxLogs.AppendText("\nDevice Disconnected!\n");
richTextBoxLogs.AppendText("--------------------------------------------");
}
else
{
MessageBox.Show("No device is connected.");
}
}
catch (Exception ex)
{
MessageBox.Show("Error in disconnecting: " + ex.Message);
}
}

private async Task ScanDevicesAsync()
{
btnScan.Text = "Scanning...";
btnScan.Enabled = false;

try
{
client = new BluetoothClient();
var deviceTask = Task.Run(() => client.DiscoverDevices(255).ToArray());
devices = await deviceTask;

listDevice.Items.Clear();

foreach (var device in devices)
{
listDevice.Items.Add(device.DeviceName);
}
}
catch (Exception ex)
{
MessageBox.Show("Error in scanning: " + ex.Message);
}
finally
{
btnScan.Enabled = true;
btnScan.Text = "Scan";
}
}

private async Task ListenForConnection()
{
listener = new BluetoothListener(BluetoothService.SerialPort);
listener.Start();

while (true)
{
var bluetoothClient = await Task.Run(() =>  listener.AcceptBluetoothClient());
var deviceName = bluetoothClient.RemoteMachineName;
var pinCode = GeneratePinCode();

var result = MessageBox.Show($"{deviceName} want to connect. Allow? \nPIN: {pinCode}", "Bluetooth Connection", MessageBoxButtons.YesNo);

if (result == DialogResult.Yes)
{
var enteredPinCode = PromptForPinCode();

if (enteredPinCode == pinCode)
{
client = bluetoothClient;
MessageBox.Show("Connected to " + deviceName);
}
else
{
MessageBox.Show("Incorrect PIN. Connection failed.");
bluetoothClient.Close();
}
}
else
{
bluetoothClient.Close();
}
}
}

private string GeneratePinCode()
{
var random = new Random();
return random.Next(1000, 9999).ToString();
}
}
}
Я хочу, чтобы он успешно подключился. Пожалуйста, помогите мне. Спасибо большое

Подробнее здесь: https://stackoverflow.com/questions/793 ... nt-connect
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»