Friday, 29 August 2014

*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;
 
 
}

No comments:

Post a Comment