|
Mostrar Temas
|
Páginas: [1] 2 3
|
1
|
Foros Generales / Dudas Generales / Dudas sobre certificaciones de Seguridad (CEH, etc.)
|
en: 2 Septiembre 2015, 12:59 pm
|
Buenas,
actualmente estoy en mi último año de Ingeniería Informática, y tengo varias cosas en mente para el futuro inmediato, que serían varios másters (no necesariamente de seguridad); y certificaciones, estas sí de Seguridad, puesto que he leído que es lo que más se valora.
He visto esta, la de Certified Ethical Hacker (CEH) y me ha interesado, pero por lo que he leído, la certificación expira a los 3 años de conseguirla... Mi idea no es, necesariamente, sacarme la certificación y ya meterme en el mundo laboral en ese ámbito; contemplo muchas ramas. Así que eso de que expire "tan" pronto me echa para atrás.
¿Podríais recomendar certificaciones? Agradecería si además tenéis en cuenta lo dicho arriba sobre que expiren.
Muchas gracias y saludos.
|
|
|
3
|
Programación / Java / ¿Está mal este programa? Concurrencia y semáforos
|
en: 26 Septiembre 2014, 19:40 pm
|
Buenas, estoy con programación concurrente, y la verdad es que me cuesta bastante. En este caso, el ejercicio propuesto es un programa cuya salida sea: A BB CCC A BB CCC etc. Donde cada hilo imprime su letra. Esto es lo que he hecho, cuya salida es correcta: public class HiloLetra implements Runnable{ char letra; int numVeces; Buffer buffer; //Recurso compartido static int turno; public HiloLetra(char letra, int numVeces, Buffer buffer) { this.letra = letra; this.numVeces = numVeces; this.buffer = buffer; } @Override public void run() { while(true) { try { buffer.imprimirLetra(letra, numVeces); e.printStackTrace(); } } } }
import java.util.concurrent.Semaphore; public class Buffer { int numeroLetras; Semaphore arrayCandados[]; int posicionArray; public Buffer(int numeroLetras) { this.numeroLetras = numeroLetras; arrayCandados = new Semaphore[this.numeroLetras]; posicionArray = 0; crearCandados(); } private void crearCandados() { arrayCandados[0] = new Semaphore(1); for(int i = 1; i < numeroLetras; i++) { arrayCandados[i] = new Semaphore(0); } } while(numeroLetra-1 == posicionArray) { arrayCandados[posicionArray].acquire(numeroLetra); for(int i = 0; i < numeroLetra; i++) { System. out. print(letra /*+", posicion array: "+posicionArray*/); } posicionArray++; if(posicionArray == numeroLetras) { posicionArray = 0; } arrayCandados[posicionArray].release(posicionArray+1); } } }
final int NUMERO_LETRAS = 3; HiloLetra runnables[]; Buffer buffer; runnables = new HiloLetra[NUMERO_LETRAS]; hilosLetras = new Thread[NUMERO_LETRAS ]; buffer = new Buffer(NUMERO_LETRAS); crearHilos(); } private void crearHilos() { for(int i = 0; i < NUMERO_LETRAS; i++) { runnables[i] = new HiloLetra((char)(i+'A'), i+1, buffer); //System.out.println("creado hilo "+(char)(i+'A')+", num veces: "+(i+1)); hilosLetras [i ] = new Thread(runnables [i ]); } } private void iniciarHilos() { for(int i = 0; i < NUMERO_LETRAS; i++) { hilosLetras[i].start(); } } public static void main (String[] args ) { principal.iniciarHilos(); } }
Buffer es la clase donde se guarda el array de semáforos, y cuya instancia es un recurso compartido por todos los hilos. Como he dicho, la salida del programa es correcta. Pero mi duda radica en si la concurrencia de veras está bien gestionada. Porque, mientras se ejecuta el programa, el administrador de tareas indica que la CPU está al 100%, lo cual me hace pensar que no se estén gestionando bien los hilos. Gracias de antemano y saludos.
|
|
|
5
|
Programación / Java / No se reproduce archivo .wav: javax.sound.sampled.UnsupportedAudioFileException
|
en: 23 Noviembre 2013, 17:03 pm
|
Buenas, estoy tratando de reproducir un archivo de audio (.wav en este caso, que por lo que he visto es el más extendido en estos casos) para luego implementarlo en otro programa. Antes de ponerme a ello, he usado AudioSystem.getAudioFileTypes() para ver qué audios están soportados. La salida es la siguiente: wav au aif Pues bien, al intentar reproducir un .wav, me salta la excepción que he puesto en el título:
He probado cambiando el nombre del archivo por uno inexistente por si el problema era que no encontraba el archivo, pero no es así; sí lo encuentra, pero no es capaz de reproducirlo. Os dejo el código fuente: import java.io.File; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class Reproductor { public static void main (String[] args ) { try { sonido.start(); while (sonido.isRunning()) sonido.close(); System. out. println(e. getMessage()); } } }
Gracias de antemano y un saludo.
|
|
|
6
|
Programación / Java / Aplicación con sockets no funciona en LAN (sólo con localhost)
|
en: 18 Noviembre 2013, 10:26 am
|
Estoy creando una aplicación cliente-servidor lo más sencilla posible (para luego implementar más cosas), pero estoy teniendo problemas para ejecutarlo en la LAN de mi casa (ya entonces de WAN ni de hablamos, el cual es mi propósito...). Sólo funciona cuando tanto el servidor como el cliente son el mismo localhost, si no, me salta la siguiente excepción: java.net.ConnectException: Connection refused: connect Os dejo los fuentes. Cliente: import java.io.DataInputStream; import java.io.InputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; public class Cliente { //Constantes final int PUERTO = 7000; //final String HOST = "192.168.1.36"; /************/ //Métodos - constructor public Cliente(){ try{ skCliente = new Socket(address, PUERTO ); System. out. println(flujo. readUTF()); skCliente.close(); System. out. println("Error en la conexión." ); } } //Cuerpo del programa public static void main (String[] args ){ new Cliente(); } }
Servidor: import java.io.DataOutputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; public class Servidor { //Constantes final int MAX_CLIENTES = 5; final int PUERTO = 7000; /************/ //Métodos - constructor public Servidor(){ try { System. out. println("Escucho el puerto: "+PUERTO ); for(int numCli = 0; numCli < MAX_CLIENTES; numCli++){ Socket skCliente = skServidor. accept(); System. out. println("\tSirvo al cliente: "+skCliente. getRemoteSocketAddress()); flujo.writeUTF("\nHola cliente "+ skCliente.getRemoteSocketAddress()); skCliente.close(); } System. out. println("Error en la conexión." ); } // TODO Auto-generated catch block } } public static void main (String[] args ){ new Servidor(); } }
Gracias de antemano y saludos.
|
|
|
7
|
Programación / Java / Dibujar con Graphics encima de un panel con una imagen de fondo
|
en: 12 Noviembre 2013, 19:57 pm
|
Buenas, estoy con algo que me lleva trayendo de cabeza desde hace bastante. Mi pregunta es ésa, ¿cómo puedo poner una imagen de fondo, y luego superponer figuras con Graphics? Lo he intentado de mil maneras, a veces no me hace caso, y otras da error en tiempo de ejecución, y no sabría ni qué código poner aquí. He conseguido poner otros componentes como JLabels o JButtons, pero con Graphics no puedo.
Gracias de antemano y saludos.
|
|
|
8
|
Programación / Java / [Duda]Conectarse a "base de datos" en ordenador remoto
|
en: 9 Noviembre 2013, 23:45 pm
|
Hola buenas, os expongo mi problema.
Estoy haciendo un clon del Arkanoid y me gustaría añadirle un sistema de puntuaciones, para hacerlo más atractivo y rejugable. Mi idea es la siguiente: cada partida tendrá asociada un nombre (el que usuario escoja), y éste se guardará, junto con los puntos conseguidos, en un fichero que se guardará en un "servidor". Cuando en el menú del juego se seleccionara la opción de mostrar las puntuaciones, pues se mostraría la información almacenada en el fichero.
Y claro, se supone cualquier ordenador desde el cual se estuviera ejecutando el juego puede ver las puntuaciones del fichero. Antes que nada aclarar que mis conocimientos sobre sockets (en cualquier lenguaje de programación) son nulos. Dicho ésto, mi pregunta es, ¿puede ser viable? No os estoy pidiendo cuál sería el código ni nada por el estilo, evidentemente, sino cuáles serían las directrices a seguir para mi propósito.
Creo que no me dejo nada en el tintero. Muchas gracias de antemano (sobretodo por vuestra paciencia).
|
|
|
9
|
Programación / Programación C/C++ / Problema con matriz dinámica
|
en: 22 Mayo 2013, 18:09 pm
|
Buenas, resulta que tengo que coger la información de un fichero .dat con la información de una matriz dinámica. Se supone que la estructura empleada es la siguiente: typedef struct Matriz{ int f; int c; double **m; }tMatriz;
He probado mil formas, pero no consigo coger correctamente la información del fichero. Ésta es la última forma que he probado: int main() { //Variables FILE *fichero; tMatriz *matriz; char nombre[15]; int cantidad; int i; /****************************/ printf("Nombre del fichero: "); if( (fichero = fopen(nombre , "rb") ) == NULL ) { printf("\nEl fichero no existe. El programa se cerrará..."); Sleep(2500); } matriz = (tMatriz *) malloc( 20 * sizeof(tMatriz ) ); matriz ->m = (double**) malloc( 20* sizeof(double*) ); for(i=0; i < 20; i++) matriz ->m [i ] = (double*) malloc( 20* sizeof(double) ); cantidad = fread(matriz , sizeof(tMatriz ), 20, fichero ); printf("%d\t%d", matriz ->c , matriz ->f ); //Basura return 0; }
El valor de 20 para las filas y columnas es uno elegido al azar. Cuando imprimo los valores de 'c' y 'f', salen números que no tienen nada que ver con lo que corresponde. Y cuando intento imprimir los valores de la matriz, el programa peta y se cierra. A ver si me podéis ayudar. Saludos.
|
|
|
10
|
Programación / Programación C/C++ / Insertar un elemento ordenadamente en una lista enlazada simple
|
en: 26 Abril 2013, 17:11 pm
|
Hola, tengo que hacer una lista enlazada simple en la que los elementos que se insertan, sea de una forma ordenada (de menor a mayor). He hecho la función y no consigo que funcione como debe, no sé cuál es el fallo y cómo debo corregirlo... Os dejo la función (creo que no hace falta poner todo el programa, pero si así fuera decídmelo y lo pongo (igual me he líado con el nombre de alguna variable en la traducción jeje): LISTA *meterElementoOrdenado(int num, LISTA *lista) { LISTA *nodo_aux, *inicio; int cont = 1; inicio = lista; nodo_aux = (LISTA *) malloc( sizeof(LISTA ) ); if(nodo_aux == NULL) printf("\nNo hay sitio para mas elementos...\n"); if(lista == NULL) { nodo_aux->numero = num; nodo_aux->siguiente = NULL; return nodo_aux; } else { do { if(num < lista->numero) { nodo_aux->numero = num; nodo_aux->siguiente = lista->siguiente; lista->siguiente = nodo_aux; cont = 0; } lista = lista->siguiente; }while( (lista != NULL) && (cont != 0) ); nodo_aux = inicio; return nodo_aux; } }
Gracias de antemano y saludos.
|
|
|
|
|
|
|