BlueTooth is a wireless protocol data communication protocol. Like all wireless protocols BlueTooth is designed to replace wires, only in this case we are talking short, low speed wires. Bluetooth can communicate in a 10M range with a maximum aggregate throughput of 1Mbit/s. This is enough to use between handheld devices such as mobile phones and PDAs, but not enough to use for real-time streaming video. Bluetooth has dedicated 64kbit/s voice channels and is well suited to replacing wires for cellphone headsets and the like.
Bluetooth uses a master/slave arrangement called a Piconet, which allows for 7 active slaves per master. The bandwidth (from the 2.4GHz ISM range) is allocated using TimeDivisionMultiplexing (TDM).
To configure bluetooth on your host, make sure your kernel has the correct modules loaded for your bluetooth adapter. Run:
$ hciconfig -a
if it doesn't list anything then the kernel hasn't detected your bluetooth device. If it lists "hci0" but says it is down, then it has detected it but not configured it. You can bring it up with:
$ hciconfig hci0 up
You can perform a scan of nearby bluetooth devices with:
$ hcitool scan
and investigate a device with:
$ hcitool info mac-of-device
$ sdptool browse mac-of-device
To send files over bluetooth:
$ ussp-push mac-of-device@ localfile 'remotefile''
Note that the @ is important, without it ussp-push thinks mac-of-device is a path to a tty file.
Can't create RFCOMM TTY: Address already in use
This error from rfcomm means that something is already using that /dev/rfcomm0, use another one, or use "rfcomm release /dev/rfcomm0" to make it available.