//----------------------------------------------------->
int enviar_header(int id, int tamanio, int socket) {
	void * buffer = serializar_header((uint8_t) id, (uint32_t) tamanio);

	int result = send(socket, buffer, 5, 0);

	if (result <= 0) {
		//printf("Error en el envio del header %d\n", id);
	}

	free(buffer);
	return result;
}
//----------------------------------------------------->
int enviar_handshake(int socket, int id) {
	void * buffer = serializar_header((uint8_t) id, (uint32_t) 0);

	int result = send(socket, buffer, 5, 0);

	if (result == -1) {
		puts("Error en el envio del handshake");
	} else {
		puts("Handshake enviado");
	}

	free(buffer);
	return result;
}
Пример #3
0
int enviar_header(int socket, t_header *header) {
	int bytes_enviados_totales = 0;
	int bytes_enviados = 0;

	void *paquete_serializado = serializar_header(header);

	// Ciclo hasta que se envie toodo lo que quiero enviar
	if (socket >= 0) {
		while (bytes_enviados_totales < sizeof(t_header)) {
			if ((bytes_enviados = send(socket, paquete_serializado,
					sizeof(t_header), 0)) == -1) {
				perror("send");
				close(socket);
				return -1;
			}
			bytes_enviados_totales += bytes_enviados;
		}
	}
	free(paquete_serializado);
	return bytes_enviados_totales;
}
//----------------------------------------------------->
void * serializar_imprimir_valor(int valor) {
	return serializar_header((uint8_t) 11, (uint32_t) valor);
}
//----------------------------------------------------->
void * serializar_respuesta_inicio(int response) {
	return serializar_header((uint8_t) 17, (uint32_t) response);
}
//----------------------------------------------------->
void * serializar_tamanio_pagina(int page_size) {
	return serializar_header((uint8_t) 19, (uint32_t) page_size);
}
//----------------------------------------------------->
void * serializar_cambio_proceso(int pid) {
	return serializar_header((uint8_t) 18, (uint32_t) pid);
}
//----------------------------------------------------->
void * serializar_fin_prog(int pid) {
	return serializar_header((uint8_t) 13, (uint32_t) pid);
}