- 论坛徽章:
- 0
|
#include<string.h>
#include<error.h>
#include<unistd.h>
#include<stdio.h>
#include<linux/types.h>
#include<sys/socket.h>
#include<sys/time.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<linux/irda.h>
#define DEV_ADDR_ANY 0xffffffff
int main(int argc,char *argv[])
{
int listensock,connsock;
struct sockaddr_irda ir_c={0},ir_s={0};
char recvbuff[1000];
ir_s.sir_family = AF_IRDA;
ir_s.sir_addr = DEV_ADDR_ANY;
ir_s.sir_lsap_sel = 0;
strcpy(ir_s.sir_name,"IrDA:TinyTP");
if((listensock=socket(AF_IRDA,SOCK_STREAM,0))==-1){
perror("socket");
exit(1);
}
if(bind(listensock,(struct sockaddr*)(&ir_s),sizeof(ir_s))==-1){
perror("bind");
exit(1);
}
if(listen(listensock,10)){
perror("listen");
exit(1);
}
connsock=accept(listensock,(struct sockaddr*)(&ir_c),NULL);
if(recv(connsock,recvbuff,sizeof(recvbuff),0)==-1) perror("recv");
else printf("%s",recvbuff);
close(connsock);
close(listensock);
}
我想把红外口看作一个网络进行通信,可是出现了这样的错
bind : cannot allocate memory
请大虾指教这是什么原因
谢谢!!! |
|