---
name: "rfcomm_sppd"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/rfcomm_sppd"
---

# rfcomm\_sppd(1)

RFCOMM Serial Port Profile daemon

## NAME

**rfcomm\_sppd** – RFCOMM Serial Port Profile daemon

## SYNOPSIS

**rfcomm\_sppd** \[**-bhtS**\] **-a** *address* **-c** *channel*

## DESCRIPTION

The **rfcomm\_sppd** utility is a Serial Port Profile daemon. It can operate in two modes: client and server.

In client mode, **rfcomm\_sppd** opens RFCOMM connection to the specified *address* server and *channel*. Once connection is established, the **rfcomm\_sppd** utility provides access to the server's remote serial port via stdin/stdout or via [pts(4)](/pts/4.md) interface if **-t** option was specified.

If the **-S** option is specified, **rfcomm\_sppd** will operate in server mode and act as RFCOMM server, listening on ANY address and advertising a virtual serial port via the [sdpd(8)](/sdpd/8.md) daemon. If **-t** options was specified, the server side of the virtual serial port is attached to a pseudo-terminal. Otherwise the virtual serial port is attached to the stdin/stdout. **rfcomm\_sppd** should be run as root in order to communicate with [sdpd(8)](/sdpd/8.md) in this case.

The **rfcomm\_sppd** utility opens both master and slave pseudo terminals. This is done to ensure that RFCOMM connection stays open until **rfcomm\_sppd** is terminated. The data received from the master pseudo terminal are sent over the RFCOMM connection. The data received from the RFCOMM connection are written into master pseudo terminal. The application in its turn opens the slave pseudo terminal and operates on it just like it would operate over the standard serial port.

The options are as follows:

- **-a** *address*

  In client mode, this required option specifies the address of the remote RFCOMM server. If this option is specified in server mode, **rfcomm\_sppd** will only accept connections from the Bluetooth device with address *address*. The address can be specified as BD\_ADDR or name. If name was specified then **rfcomm\_sppd** utility will attempt to resolve the name via [bt\_gethostbyname(3)](/bt_gethostbyname/3.md).

- **-b**

  Detach from the controlling terminal, i.e., run in background.

- **-c** *channel*

  In both client and server mode, this option specifies the RFCOMM channel to connect to or listen on. In server mode, the channel should be a number between 1 and 30. If not specified, **rfcomm\_sppd** will try to bind to “wildcard” RFCOMM channel number. The actual RFCOMM channel will be obtained via [getsockname(2)](/getsockname/2.md) call and will be used to register Serial Port service with [sdpd(8)](/sdpd/8.md). In client mode, the channel could either be a number between 1 and 30 or a service name. Supported service names are: **DUN** (for DialUp Networking service), **FAX** (for Fax service), **LAN** (for LAN Access Using PPP service) and **SP** (for Serial Port service). If channel was not specified then **rfcomm\_sppd** utility will try to obtain RFCOMM channel for Serial Port service via Service Discovery Protocol from the server.

- **-h**

  Display usage message and exit.

- **-S**

  Server mode; see DESCRIPTION.

- **-t**

  Use slave pseudo tty. If not set stdin/stdout will be used. This option is required if **-b** option was specified.

## FILES

- */dev/pts/\[num\]*

  slave pseudo terminals

## EXIT STATUS

The **rfcomm\_sppd** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

```
rfcomm_sppd -a 00:01:02:03:04:05 -c 1 -t
```

Will start the **rfcomm\_sppd** utility and open RFCOMM connection to the server at 00:01:02:03:04:05 and channel 1. Once the connection has been established, a [pts(4)](/pts/4.md) can be used to talk to the remote serial port on the server. **rfcomm\_sppd** prints the name of the [pts(4)](/pts/4.md) to use on stdout.

## SEE ALSO

[bluetooth(3)](/bluetooth/3.md), [ng\_btsocket(4)](/ng_btsocket/4.md), [pts(4)](/pts/4.md), [rfcomm\_pppd(8)](/rfcomm_pppd/8.md), [sdpd(8)](/sdpd/8.md)

## AUTHORS

Maksim Yevmenkin ⟨*m\_evmenkin@yahoo.com*⟩

## BUGS

Please report if found.
