m2.mbcp/src/highreceiver.cc
2006-03-01 21:40:44 +00:00

59 lines
1.2 KiB
C++

#include "highreceiver.h"
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
HighReceiver::HighReceiver(){
printf("LowReceiver::LowReceiver --");
_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;
_socket_addr->sin_port = 0; //FIXME random port ?
_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);
}
//FIXME: initialiser le port
}
short HighReceiver::getPort(){
return _port;
}
HighReceiver::~HighReceiver(){
delete _socket_addr;
}
void HighReceiver::run(){
while(1){
sleep(1);
printf("HighReceiver::run -- \n");
}
}