Пример #1
0
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);
	}
}
Пример #2
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;
}
Пример #4
0
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;
}