RFCOMM_SPPD(1) BSD General Commands Manual RFCOMM_SPPD(1)NAMErfcomm_sppd — RFCOMM Serial Port Profile daemon
SYNOPSISrfcomm_sppd [-bhS] -a address -c channel [-t tty]
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 pty(4) 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 vir‐
tual serial port via the sdpd(8) daemon. If -t options was specified,
the server side of the virtual serial port is attached to the pseudo-ter‐
minal tty. 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) 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 ter‐
minal are sent over the RFCOMM connection. The data received from the
RFCOMM connection are written into master pseudo terminal. The applica‐
tion 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:
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).
-b Detach from the controlling terminal, i.e., run in background.
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)
call and will be used to register Serial Port service with
sdpd(8). 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 ser‐
vice). 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 tty Slave pseudo tty name. If not set stdin/stdout will be used.
This option is required if -b option was specified.
/dev/pty[p-sP-S][0-9a-v] master pseudo terminals
/dev/tty[p-sP-S][0-9a-v] slave pseudo terminals
The rfcomm_sppd utility exits 0 on success, and >0 if an error occurs.
EXAMPLESrfcomm_sppd-a 00:01:02:03:04:05 -c 1 -t /dev/ttyp1
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, /dev/ttyp1 can be used to talk to the remote serial port on
SEE ALSObluetooth(3), ng_btsocket(4), pty(4), rfcomm_pppd(8), sdpd(8)AUTHORS
Maksim Yevmenkin ⟨email@example.com⟩
Please report if found.
BSD April 21, 2008 BSD