Newer
Older
#include "Server.h"
namespace Server
{
struct sockaddr_rc loc_addr, rem_addr;
char buf[1024] = { 0 };
int s, client, bytes_read;
socklen_t opt = sizeof rem_addr;
}
{
// allocate socket
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
// bind socket to port 1 of the first available
// local bluetooth adapter
loc_addr.rc_family = AF_BLUETOOTH;
loc_addr.rc_bdaddr = (bdaddr_t) { {0, 0, 0, 0, 0, 0} };
loc_addr.rc_channel = (uint8_t)1;
bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr));
// put socket into listening mode
listen(s, 1);
// accept one connection
client = accept(s, (struct sockaddr *)&rem_addr, &opt);
ba2str(&rem_addr.rc_bdaddr, buf);
// read data from the client
read(client, buf, sizeof(buf));
return buf;
}
// close connection
close(client);
close(s);