C#WinForm实现蓝牙连接文件传输
				
									
					
					
						|  | 
							admin 2025年2月26日 7:39
								本文热度 1776 | 
					
				 
				using InTheHand.Net;using InTheHand.Net.Sockets;using InTheHand.Net.Bluetooth;
private BluetoothClient btClient;private NetworkStream btStream;private BluetoothDeviceInfo selectedDevice;private readonly Guid serviceUUID = new Guid("00001132-0000-1000-8000-00805f9b34fb"); 
private void btnScan_Click(object sender, EventArgs e){	lstDevices.Items.Clear();	btClient = new BluetoothClient();	var devices = btClient.DiscoverDevices();
	foreach (var device in devices)	{		lstDevices.Items.Add($"{device.DeviceName} [{device.DeviceAddress}]");	}}
private void lstDevices_SelectedIndexChanged(object sender, EventArgs e){	var selected = btClient.DiscoverDevices()[lstDevices.SelectedIndex];	selectedDevice = selected;	richTextBox1.AppendText($"已选择:{selected.DeviceName}\n");}
private void btnConnect_Click(object sender, EventArgs e){	try	{		btClient.Connect(selectedDevice.DeviceAddress, serviceUUID);		btStream = btClient.GetStream();		StartListening();		richTextBox1.AppendText("连接成功\n");	}	catch (Exception ex)	{		MessageBox.Show($"连接失败:{ex.Message}");	}}
private void StartListening(){	new Thread(() =>	{		byte[] buffer = new byte[1024];		while (btClient?.Connected == true)		{			try			{				int bytesRead = btStream.Read(buffer, 0, buffer.Length);				if (bytesRead > 0)				{					string received = Encoding.UTF8.GetString(buffer, 0, bytesRead);					Invoke((MethodInvoker)delegate { richTextBox1.AppendText($"[接收] {received}\n"); });				}			}			catch { break; }		}	}).Start();}
private void btnSend_Click(object sender, EventArgs e){	if (btClient?.Connected != true) return;		byte[] buffer = new byte[1024]; 	using (FileStream fs = new FileStream(txtSend.Text, FileMode.Open, FileAccess.Read))	{		int bytesRead;		while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)		{			btClient.GetStream().Write(buffer, 0, bytesRead);		}	}	richTextBox1.AppendText($"[发送] {txtSend.Text}\n");	txtSend.Clear();}
阅读原文:原文链接
该文章在 2025/2/26 18:30:29 编辑过