Witam,

mam problem z kodem wziętym z tutorialu, wyrzuca mi błąd o treści:
"An unhandled exception of type 'System.IO.IOException' occurred in System.dll

Additional information: Nie można zapisać danych do połączenia transportowego: Nawiązane połączenie zostało przerwane przez oprogramowanie zainstalowane w komputerze-hoście."

Wie ktoś o co chodzi z tym błędem?

Kod:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using InTheHand;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Ports;
using InTheHand.Net.Sockets;
using System.IO;
using System.Runtime.InteropServices;

namespace Bleutooth
{
public partial class Form1 : Form
{
List<string> items;
public Form1()
{
items = new List<string>();
InitializeComponent();
}

    private void Client_CheckedChanged(object sender, EventArgs e)
    {

    }

    private void bGo_Click(object sender, EventArgs e)
    {
        startScan();
   
    }

    private void startScan()
    {
        listBox1.DataSource = null;
        listBox1.Items.Clear();
        items.Clear();
        Thread bluetoothScanThread = new Thread(new ThreadStart(scan));
        bluetoothScanThread.Start();
    }
    BluetoothDeviceInfo[] devices;
    private void scan()
    {

        updateUI("Start scaning");
        BluetoothClient client = new BluetoothClient();
        devices = client.DiscoverDevicesInRange();

        updateUI("Scan complite");
        updateUI(devices.Length.ToString() + " devices discoverd");
        foreach (BluetoothDeviceInfo d in devices)
        {
            items.Add(d.DeviceName);
        }
        updateDeviceList();
    }

    private void connectAsServer()
    {
        Thread bluetoothServerThread = new Thread(new ThreadStart(ServerConnectThread));
        bluetoothServerThread.Start();

    }

    private void connectAsClient()
    {
        throw new NotImplementedException();
    }

    Guid mUUID = new Guid("00001101-0000-1000-8000-00805F9B34FB");
    bool serverStarted = false;

    public void ServerConnectThread()
    {
        serverStarted = true;
           
        updateUI("Server started, waiting for clients");
        BluetoothListener blueListener = new BluetoothListener(mUUID);
        blueListener.Start();
        BluetoothClient conn = blueListener.AcceptBluetoothClient();
        updateUI("Client has connected");

        Stream mStream = conn.GetStream();


            while(true)
            {
                try
                {
                    byte[] recived = new byte[1024];
                    mStream.Read(recived, 0, recived.Length);
                    updateUI("Recived: " + Encoding.ASCII.GetString(recived));
                    byte[] sent = Encoding.ASCII.GetBytes("Cesc");
                    mStream.Write(sent, 0, sent.Length);
                }catch(IOException exception)
                {
                    updateUI("Client has disconnected");
                }

            }
    }
    private void updateUI(string message)
    {
        Func<int> del = delegate()
        {
            tbOutput.AppendText(message + System.Environment.NewLine);
            return 0;
        };
        Invoke(del);
    }

    private void updateDeviceList()
    {

        Func<int> del = delegate()
        {
            listBox1.DataSource = items;
            return 0;
        };
        Invoke(del);
    }
    BluetoothDeviceInfo deviceInfo;
    

    private void listBox1_DoubleClick(object sender, EventArgs e)
    {
        deviceInfo = devices.ElementAt(listBox1.SelectedIndex);
        updateUI(deviceInfo.DeviceName + " was selected, attempting connect");
        
        if(pairDevice())
        {

            updateUI("device paired...");
            updateUI("starging connect thread");
            Thread bluetoothClientThread = new Thread(new ThreadStart(ClientConnectThread));
            bluetoothClientThread.Start();

        }
        else
        {
            updateUI("Pair failed");

        }
    }
    private void ClientConnectThread()
    {
        BluetoothClient client = new BluetoothClient();
        updateUI("Attempting connect");
        client.BeginConnect(deviceInfo.DeviceAddress, mUUID, this.BluetoothClientConnectCallback, client);

    }
    void BluetoothClientConnectCallback(IAsyncResult result)
    {
        BluetoothClient client = (BluetoothClient)result.AsyncState;
        client.EndConnect(result);

        Stream stream = client.GetStream();
        stream.ReadTimeout = 1000;

        while(true)
        {
            while(!ready)
            {

                stream.Write(message, 0, message.Length);
            }

        }


    }
    string myPin = "1234";
    private bool pairDevice()
    {
        if (!deviceInfo.Authenticated)
        {
            if (!BluetoothSecurity.PairRequest(deviceInfo.DeviceAddress, myPin))
            {
                return false;

            }

        }
        return true;

    }
    bool ready = false;
    byte[] message = new byte[100];
    private void listBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == 13)
        {
            message = Encoding.ASCII.GetBytes(tbText.Text);
            ready = true;
            tbText.Clear();

        }

    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

    private void start(object sender, EventArgs e)
    {
        startScan();
    }
}

}


Za wszelką pomoc dziękuje :)