int main() { SocketDatagrama server = SocketDatagrama(7200); server.setBroadcast(true); PaqueteDatagrama in = PaqueteDatagrama(0); printf("xD\n"); while(1) { server.recibe(&in); printf("Recibe de %s:%d\n", in.obtieneDireccion(), in.obtienePuerto()); PaqueteDatagrama out = PaqueteDatagrama(NULL,0,in.obtieneDireccion(), in.obtienePuerto()); server.envia(&out); } }
int main() { SocketDatagrama socket = SocketDatagrama(7300); int * numeros; PaqueteDatagrama datagrama = PaqueteDatagrama( 2 * sizeof(int)); socket.recibe(&datagrama); numeros = (int *) datagrama.obtieneDatos(); int * ans = (int *)malloc(sizeof(int)); *ans = numeros[0] + numeros[1]; cout << "Numeros recibidos " << numeros[0] << " y " << numeros[1] << " de " << datagrama.obtieneDireccion() << ":" << datagrama.obtienePuerto() << endl; PaqueteDatagrama databack = PaqueteDatagrama((char*) ans, sizeof(int), datagrama.obtieneDireccion(), datagrama.obtienePuerto()); socket.envia(&databack); return 0; }
//Envía un paquete tipo datagrama desde este socket int SocketDatagrama::envia(PaqueteDatagrama & p) { direccionForanea.sin_family = AF_INET; direccionForanea.sin_addr.s_addr = inet_addr(p.obtieneDireccion()); direccionForanea.sin_port = htons(p.obtienePuerto()); sendto(s, (char *)p.obtieneDatos(), p.obtieneLongitud(), 0, (struct sockaddr *) &direccionForanea, sizeof(direccionForanea)); }
int SocketDatagrama::envia(PaqueteDatagrama & p) { int status; //char *datos = p.obtieneDatos(); direccionForanea.sin_family = AF_INET; direccionForanea.sin_addr.s_addr = inet_addr((char *)p.obtieneDireccion()); direccionForanea.sin_port = htons(p.obtienePuerto()); status = sendto(s, p.obtieneDatos(), p.obtieneLongitud(), 0, (struct sockaddr *) &direccionForanea, sizeof(direccionForanea)); //cout << (char*) p.obtieneDatos() << endl; return status; }