*the server_bluetooth program
*gcc -o server_blue server_blue.c -lbluetooth
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<bluetooth/bluetooth.h>
#include<bluetooth/rfcomm.h>
#include<bluetooth/hci.h>
#include<bluetooth/hci_lib.h>
int main(int argc,char **argv)
{
struct sockaddr_rc loc_addr={0};
struct sockaddr_rc rem_addr={0};
int server_sock,client,bytes_red;
unsigned int opt=sizeof(rem_addr);
char buf[248]={0};
char name[500]={0};
server_sock=socket(AF_BLUETOOTH,SOCK_STREAM,BTPROTO_RFCOMM);
loc_addr.rc_family=AF_BLUETOOTH;
loc_addr.rc_bdaddr= *BDADDR_ANY;
loc_addr.rc_channel=1;
bind(server_sock,(struct sockaddr *)&loc_addr ,sizeof(loc_addr));
ba2str(&loc_addr.rc_bdaddr,buf);
printf("servessr name: %s \n",buf);
if(0!=hci_read_remote_name(server_sock,&loc_addr.rc_bdaddr,sizeof(name),name,0))
{
strcpy(name,"[unknown]");
printf ( " details: %s %s\n" , buf , name ) ;
}
else
printf ( " details: %s %s\n" , buf , name ) ;
listen(server_sock,1);
client=accept(server_sock,(struct sockaddr *)&rem_addr,&opt);
ba2str(&rem_addr.rc_bdaddr,buf);
printf("client name: %s \n",buf);
bytes_red=recv(client,buf,sizeof(buf),0);
if(bytes_red>0)
printf("bytes send : %d \n",bytes_red);
close(client);
close(server_sock);
return 0;
}
*gcc -o server_blue server_blue.c -lbluetooth
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<bluetooth/bluetooth.h>
#include<bluetooth/rfcomm.h>
#include<bluetooth/hci.h>
#include<bluetooth/hci_lib.h>
int main(int argc,char **argv)
{
struct sockaddr_rc loc_addr={0};
struct sockaddr_rc rem_addr={0};
int server_sock,client,bytes_red;
unsigned int opt=sizeof(rem_addr);
char buf[248]={0};
char name[500]={0};
server_sock=socket(AF_BLUETOOTH,SOCK_STREAM,BTPROTO_RFCOMM);
loc_addr.rc_family=AF_BLUETOOTH;
loc_addr.rc_bdaddr= *BDADDR_ANY;
loc_addr.rc_channel=1;
bind(server_sock,(struct sockaddr *)&loc_addr ,sizeof(loc_addr));
ba2str(&loc_addr.rc_bdaddr,buf);
printf("servessr name: %s \n",buf);
if(0!=hci_read_remote_name(server_sock,&loc_addr.rc_bdaddr,sizeof(name),name,0))
{
strcpy(name,"[unknown]");
printf ( " details: %s %s\n" , buf , name ) ;
}
else
printf ( " details: %s %s\n" , buf , name ) ;
listen(server_sock,1);
client=accept(server_sock,(struct sockaddr *)&rem_addr,&opt);
ba2str(&rem_addr.rc_bdaddr,buf);
printf("client name: %s \n",buf);
bytes_red=recv(client,buf,sizeof(buf),0);
if(bytes_red>0)
printf("bytes send : %d \n",bytes_red);
close(client);
close(server_sock);
return 0;
}