2006-02-05 17:43:00 +00:00
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <netinet/in.h>
|
|
|
|
|
2006-03-06 15:16:12 +00:00
|
|
|
#include "macros.h"
|
|
|
|
#include "highreceiver.h"
|
|
|
|
|
|
|
|
#define DEBUG 0
|
|
|
|
|
2006-03-06 12:42:03 +00:00
|
|
|
HighReceiver::HighReceiver(short low_port){
|
2006-02-05 17:43:00 +00:00
|
|
|
|
|
|
|
printf("LowReceiver::LowReceiver --");
|
|
|
|
|
2006-03-06 12:42:03 +00:00
|
|
|
_port = low_port + 1;
|
|
|
|
|
2006-02-05 17:43:00 +00:00
|
|
|
_socket_desc = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
|
|
|
|
/* et l'autre variante : AF_UNIX */
|
|
|
|
if (_socket_desc < 0){
|
|
|
|
/* error */
|
|
|
|
perror("Creation de la socket impossible");
|
|
|
|
fprintf(stderr,"BOUM at %s:%d",__FILE__,__LINE__);
|
|
|
|
// FIXME: throw something
|
|
|
|
exit(-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
struct sockaddr_in * _socket_addr = new sockaddr_in;
|
|
|
|
|
|
|
|
// port_low = externe
|
|
|
|
// port_high = interne
|
|
|
|
bzero(_socket_addr,sizeof(sockaddr_in));
|
|
|
|
_socket_addr->sin_family = AF_INET;
|
2006-03-06 12:42:03 +00:00
|
|
|
_socket_addr->sin_port = htons(_port);
|
2006-02-05 17:43:00 +00:00
|
|
|
_socket_addr->sin_addr.s_addr = htonl(INADDR_ANY);
|
|
|
|
|
|
|
|
// chopper une socket
|
|
|
|
if (bind(_socket_desc,(struct sockaddr *)_socket_addr,sizeof(sockaddr_in)) < 0) {
|
|
|
|
//FIXME : throw something
|
|
|
|
perror("Attachement de la socket impossible");
|
|
|
|
fprintf(stderr,"BOUM at %s:%d",__FILE__,__LINE__);
|
|
|
|
exit(-1);
|
|
|
|
}
|
2006-03-01 21:40:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
short HighReceiver::getPort(){
|
|
|
|
return _port;
|
2006-02-05 17:43:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
HighReceiver::~HighReceiver(){
|
|
|
|
delete _socket_addr;
|
|
|
|
}
|
|
|
|
|
|
|
|
void HighReceiver::run(){
|
|
|
|
while(1){
|
|
|
|
sleep(1);
|
2006-03-06 15:16:12 +00:00
|
|
|
pDEBUG(" ");
|
2006-02-05 17:43:00 +00:00
|
|
|
}
|
|
|
|
}
|
2006-03-06 15:16:12 +00:00
|
|
|
|
|
|
|
#undef DEBUG
|