diff options
Diffstat (limited to 'rpi.c')
| -rw-r--r-- | rpi.c | 50 |
1 files changed, 0 insertions, 50 deletions
@@ -1,50 +0,0 @@ -#include <stdio.h> -#include <unistd.h> -#include <sys/socket.h> -#include <bluetooth/bluetooth.h> -#include <bluetooth/rfcomm.h> - -int main(int argc, char **argv) -{ - struct sockaddr_rc loc_addr = { 0 }, rem_addr = { 0 }; - 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_ANY; - loc_addr.rc_channel = (uint8_t) 1; - bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr)); - - // get local address - // ba2str( &loc_addr.rc_bdaddr, buf ); - // fprintf(stdout, "local %s\n", buf); - - // put socket into listening mode - fprintf(stdout, "Waiting on connection on RFCOMM channel %i...\n", loc_addr.rc_channel); - listen(s, loc_addr.rc_channel); - - // accept one connection - client = accept(s, (struct sockaddr *)&rem_addr, &opt); - ba2str( &rem_addr.rc_bdaddr, buf ); - fprintf(stdout, "Accepted connection from %s\n", buf); - - memset(buf, 0, sizeof(buf)); - - // read data from the client - bytes_read = read(client, buf, sizeof(buf)); - - if( bytes_read > 0 ) { - printf("received [%s]\n", buf); - } - - // close connection - close(client); - close(s); - return 0; -} |
