use Net::Bluetooth;
#### Create a RFCOMM server
#### Create a new socket object, this is basically calling
#### the systems socket() call and setting some variable.
#### The argument can be either "RFCOMM" or "L2CAP".
my $server_obj = Net::Bluetooth->newsocket("L2CAP");
die "Socket could not be created!" unless(defined($server_obj));
print "after socket\n";
#### Bind to port 1
if($server_obj->bind(5) != 0) {
#### Could try another port instead of exiting.
die "bind error: $!\n";
}
print "after bind\n";
#### Listen with a backlog of 2
if($server_obj->listen(2) != 0) {
die "listen error: $!";
}
print "after listen\n";
#### Register a service
#### $server_obj must be a open and bound socket
#### The second option is the service ID.
#### The third option is the service name.
#### The fourth option is the service description.
my $service_obj = Net::Bluetooth->newservice($server_obj, "1101", "GPS", "GPS");
print "new service\n";
unless(defined($service_obj)) {
die "Could not register service!";
}
#### accept a client connection
$client_obj = $server_obj->accept();
unless(defined($client_obj)) {
die "client accept failed: $!";
}
#### Create a Perl filehandle for reading and writing
#### The filehandle should work with any Perl call that
#### does not use the sockaddr struct.
*CLIENT = $client_obj->perlfh();
foreach(1 .. 1000) {
print CLIENT "stuff";
}
#### close client connection
close(CLIENT);
#### stop advertising service
$service_obj->stopservice();
#### close server connection
$server_obj->close();