static PyObject* registerInterest(PyObject* self, PyObject* args) {
	repa_sock_t sock;
	int result = 0;
	const char *interest;

	if (PyArg_ParseTuple(args, "(ii)s", &sock.sock_send, &sock.sock_recv, &interest)) {
		result = repa_register_interest(sock, interest);
	} else {
		PyErr_SetString(RepaError, "Error on read parameters");
		return NULL;
	}

	return Py_BuildValue("i", result);
}
int main(){
    char *interest,*data;

    sock = repa_open();

    //Aloca espaço para registrar endereço e dados para transmissão
    interest = (char*)malloc(255*sizeof(char));
    data = (char*)malloc(1500*sizeof(char));

    strcpy(interest,"client");
    repa_register_interest(sock,interest); // Registra o interesse

    while (true){
        getTemperature(data);
        sendMessage(data);
        sleep(1);
    }
    free(interest);
    free(data);
    repa_close(sock);
    return 0;
}
int main(int argc, char** argv) {
    char *aux;
	int opt;
	repa_sock_t sock;
	static int send_or_recv = -1, wait_time = 0;
	const char *interest = "repa-test://speed";
	size_t packet_size = PACKET_SIZE, num_packets = 1000;

	while (1) {
		static struct option long_options[] = {
				/* These options set a flag. */
				{"send", no_argument, &send_or_recv, APP_SEND},
				{"receive", no_argument, &send_or_recv, APP_RECV},
				{"wait-time", no_argument, &wait_time, 1},
				{"help", no_argument, 0, 'h'},
				{"packet-size", required_argument, 0, 'p'},
				{"num-packet", required_argument, 0, 'n'},
				{0, 0, 0, 0}
		};
		/* getopt_long stores the option index here. */
		int option_index = 0;

		opt = getopt_long (argc, argv, "hn:p:", long_options, &option_index);

		/* Detect the end of the options. */
		if (opt == -1)
			break;

		switch(opt) {
		case 0:
			/* If this option set a flag, do nothing else now. */
			if (long_options[option_index].flag != 0)
				break;
			printf ("Option %s", long_options[option_index].name);
			if (optarg)
				printf (" with arg %s", optarg);
			printf ("\n");
			break;
		case 'n':
			num_packets = atol(optarg);
			break;
		case 'p':
			packet_size = atol(optarg);
			break;
		case 'h':
		default:
			aux = strrchr(argv[0], '/');
			usage((aux[0] == '/' ? aux+1: aux));
			exit(EXIT_SUCCESS);
		}
	}

	if ((sock = repa_open()).error < 0) {
		printf("ERROR: Cannot open repa socket!\n");
		exit(EXIT_FAILURE);
	}

	repa_register_interest(&sock, interest);

	if (send_or_recv == APP_SEND) {
			calc_send(&sock, interest, packet_size, wait_time, num_packets*packet_size);
	} else if (send_or_recv == APP_RECV) {
			calc_recv(&sock);
	} else {
		printf("You need specify if you want \"send\" or \"receive\" packets\n");
	}

	repa_close(&sock);

	return EXIT_SUCCESS;
}