1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| int connexion()
{
struct sockaddr_un addr;
int retour,srv_socket;
u_long argp=0;
int len,result,m=0;
fd_set rfds;
struct timeval tv;
int retval;
tv.tv_sec=5;
tv.tv_usec=0;
FD_ZERO(&rfds);
FD_SET(srv_socket,&rfds); //La je suis pas sure
addr.sun_family = AF_UNIX;
strcpy(addr.sun_path,"/dev/mondevice");
srv_socket=socket(AF_UNIX,SOCK_STREAM,0);
if (srv_socket == ERREUR)
{
perror("accept");
exit(0);
}
result=connect(srv_socket,(struct sockaddr *)&addr,sizeof(addr));
if(result == -1)
{
perror("connect");
printf("Serveur indisponnible. Nouvelle tentative dans 1 min\n");
exit(0);
}
retval = select(1, &rfds, NULL, NULL, &tv); //Pas certain du premier argument du select
if (retval == -1)
perror("select()");
else if (retval)
{
read(srv_socket,buffer,sizeof(buffer));
printf("Data is available now.\n");
}
else
printf("No data within five seconds.\n");
} |