⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.c

📁 一个ARM下红外的通信的程序,有client和server,交叉编译后就和运行
💻 C
字号:
//Infrared Socket Client
//#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <sys/socket.h>
#include <sys/time.h> 
//#include <sys/ioct1.h>
#include <sys/stat.h>
#include <errno.h>
#include <string.h>
#include <linux/types.h>
#include <sys/types.h>
#include <linux/socket.h>
#include <signal.h>
#include <string.h>
//#include <netinet/in.h>
//#include <netdb.h>   
//#include <pthread.h>
//#include <fcnt1.h>
#include <unistd.h>
//#include <net/irda/af_irda.h>
#include <linux/irda.h>
//#include <af_irda.h>

#ifndef AF_IRDA
#define AF_IRDA 23
#endif /* AF_IRDA */
//typedef struct _SOCKADDR_IRDA { 
 //u_short irdaAddressFamily; 
// u_char irdaDeviceID[4];  
//char irdaServiceName[25];
//} SOCKADDR_IRDA;
#define NumRetries 5;
int  main ( int argc,  char **argv )
{
    int listenfd;
    struct sockaddr_irda client_addr;
    struct irda_device_list devlist;
    int devlistlen = sizeof(devlist);
    int cnt=0,idx=0;
    char buffer[20] = "hello,world!";
       client_addr.sir_family=AF_IRDA;
       strncpy(client_addr.sir_name, "MyServer", 25); 
       client_addr.sir_lsap_sel = LSAP_ANY;
 while ((devlist==0) && (cnt<=NumRetries))
 {
    getsockopt (listenfd,SOL_IRLMP,IRLMP_ENUMDEVICES,(char *)& devlist,&devlistlen);
    cnt++;
    sleep(1000);
  }
    if(cnt>NumRetries)
  {
       printf("Server could not be located!\n");    
  }
    else
   {  // get the server socket address
       for(idx=0; idx<=3;idx++)
         client_addr.irdaDevice[idx]=devlist.Device[0].irdaDeviceID[idx];
       connect(listenfd,(struct sockaddr *)&client_addr,sizeof(sockaddr_irda));
       send (listenfd,buffer,20,0);
       recv (listenfd,"hello client",sizeof("hello client")+1,0);
    }
return 0;       
   }
 }      
   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -