免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Windows系統(tǒng)中使用C#編寫藍(lán)牙通信程序的簡單實(shí)例
public partial class Form1 : Form
{
  BluetoothRadio radio = null;//藍(lán)牙適配器
  string sendFileName = null;//發(fā)送文件名
  BluetoothAddress sendAddress = null;//發(fā)送目的地址
  ObexListener listener = null;//監(jiān)聽器
  string recDir = null;//接受文件存放目錄
  Thread listenThread, sendThread;//發(fā)送/接收線程
  
  public Form1()
  {
    InitializeComponent();
    radio = BluetoothRadio.PrimaryRadio;//獲取當(dāng)前PC的藍(lán)牙適配器
    CheckForIllegalCrossThreadCalls = false;//不檢查跨線程調(diào)用
    if (radio == null)//檢查該電腦藍(lán)牙是否可用
    {
      MessageBox.Show("這個(gè)電腦藍(lán)牙不可用!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    recDir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    labelRecDir.Text = recDir;
  }
  
  private void buttonSelectBluetooth_Click(object sender, EventArgs e)//選擇遠(yuǎn)程藍(lán)牙設(shè)備
  {
    SelectBluetoothDeviceDialog dialog = new SelectBluetoothDeviceDialog();
    dialog.ShowRemembered = true;//顯示已經(jīng)記住的藍(lán)牙設(shè)備
    dialog.ShowAuthenticated = true;//顯示認(rèn)證過的藍(lán)牙設(shè)備
    dialog.ShowUnknown = true;//顯示位置藍(lán)牙設(shè)備
    if (dialog.ShowDialog() == DialogResult.OK)
    {
      sendAddress = dialog.SelectedDevice.DeviceAddress;//獲取選擇的遠(yuǎn)程藍(lán)牙地址
      labelAddress.Text = "地址:" + sendAddress.ToString() + "  設(shè)備名:" + dialog.SelectedDevice.DeviceName;
    }
  }
  
  private void buttonSelectFile_Click(object sender, EventArgs e)//選擇要發(fā)送的本地文件
  {
    OpenFileDialog dialog = new OpenFileDialog();
    if (dialog.ShowDialog() == DialogResult.OK)
    {
      sendFileName = dialog.FileName;//設(shè)置文件名
      labelPath.Text = Path.GetFileName(sendFileName);
    }
  }
  
  private void buttonSend_Click(object sender, EventArgs e)//發(fā)送按鈕
  {
    sendThread = new Thread(sendFile);//開啟發(fā)送文件線程
    sendThread.Start();
  }
  
  private void sendFile()//發(fā)送文件方法
  {
    ObexWebRequest request = new ObexWebRequest(sendAddress, Path.GetFileName(sendFileName));//創(chuàng)建網(wǎng)絡(luò)請求
    WebResponse response = null;
    try
    {
      buttonSend.Enabled = false;
      request.ReadFile(sendFileName);//發(fā)送文件
      labelInfo.Text = "開始發(fā)送!";
      response = request.GetResponse();//獲取回應(yīng)
      labelInfo.Text = "發(fā)送完成!";
    }
    catch (System.Exception ex)
    {
      MessageBox.Show("發(fā)送失?。?, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
      labelInfo.Text = "發(fā)送失敗!";
    }
    finally
    {
      if (response != null)
      {
        response.Close();
        buttonSend.Enabled = true;
      }
    }
  }
  
  private void buttonselectRecDir_Click(object sender, EventArgs e)//選擇接受目錄
  {
    FolderBrowserDialog dialog = new FolderBrowserDialog();
    dialog.Description = "請選擇藍(lán)牙接收文件的存放路徑";
    if (dialog.ShowDialog() == DialogResult.OK)
    {
      recDir = dialog.SelectedPath;
      labelRecDir.Text = recDir;
    }
  }
  
  private void buttonListen_Click(object sender, EventArgs e)//開始/停止監(jiān)聽
  {
    if (listener == null || !listener.IsListening)
    {
      radio.Mode = RadioMode.Discoverable;//設(shè)置本地藍(lán)牙可被檢測
      listener = new ObexListener(ObexTransport.Bluetooth);//創(chuàng)建監(jiān)聽
      listener.Start();
      if (listener.IsListening)
      {
        buttonListen.Text = "停止";
        labelRecInfo.Text = "開始監(jiān)聽";
        listenThread = new Thread(receiveFile);//開啟監(jiān)聽線程
        listenThread.Start();
      }
    }
    else
    
      listener.Stop();
      buttonListen.Text = "監(jiān)聽";
      labelRecInfo.Text = "停止監(jiān)聽";
    }
  }
  
  private void receiveFile()//收文件方法
  {
    ObexListenerContext context = null;
    ObexListenerRequest request = null;
    while (listener.IsListening)
    {
      context = listener.GetContext();//獲取監(jiān)聽上下文
      if (context == null)
      {
        break;
      }
      request = context.Request;//獲取請求
      string uriString = Uri.UnescapeDataString(request.RawUrl);//將uri轉(zhuǎn)換成字符串
      string recFileName = recDir + uriString;
      request.WriteFile(recFileName);//接收文件
      labelRecInfo.Text = "收到文件" + uriString.TrimStart(new char[] { '/' });
    }
  }
  
  private void Form1_FormClosed(object sender, FormClosedEventArgs e)
  {
    if (sendThread != null)
    {
      sendThread.Abort();
    }
    if (listenThread != null)
    {
      listenThread.Abort();
    }
    if (listener != null && listener.IsListening)
    {
      listener.Stop();
    }
  }
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#編程連接藍(lán)牙設(shè)備,文件收發(fā)
從零開始學(xué)ASP.NET(基礎(chǔ)篇)
Android處理Home鍵方法小結(jié)
Android 對話框
手機(jī)通過藍(lán)牙串口與arduino通信
C#內(nèi)存映射文件學(xué)習(xí)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服