Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ivancea96

#1621
Ese algoritmo es una forma ineficiente del algoritmo de ordenación burbuja. Ese for sirve para repetir la operación X veces (donde X es e tamaño del arreglo), que es parte del algoritmo.
#1622
Los sockets pueden ser "bloqueantes" o "no bloqueantes". En el caso que comentas, probablemente sea bloquenate. Para ponerlo "non-blocking", no te puedo ayudar, que no utilizo unix. Busca por ahí, y encontrarás.

De todos modos, tal ocmo los tienes, otra opción es tener un thread para leer del servidor, y luego otro thread para los sockets ya abiertos (o un thread por socket, tú verás).

Claro que, para recv, me parece más cómodo un socket no bloqueante. Lo dicho, echa un vistazo para ver cómo cambiar.

En caso de sockets de Windows, se haría así:
u_long block = 1 // 1 or 0, bloquing or non blocking;
ioctlsocket(sock, FIONBIO, &block);
#1623
Qué clases hacer es algo que tendrás que ver tú, según cómo lo quieras desarrollar.

De todos modos, un servidor simple, puede tener 1 bucle para encontrar nuevos clientes y un bucle para leer y responder a las peticiones de los clientes. Luego ya puedes implementar PINGS para evitar sockets desconectados ocupando memoria, o una consola para controlar desde el servidor, ya según te convenga.

El cliente, por su parte, habría de tener 2 threads (según como lo orientes, desde luego). En vez de ocupar un thread en un bucle infinito leyendo del servidor, puedes tener un timer que haga eso.
En cualquier caso, <interfaz gráfica><-><socket>, dos ramificaciones diferentes, comunciadas entre sí, desde luego.

Esa es una forma posible, ya verás qué prefieres.

Esquematiza el proyecto, dibuja un diagrama de flujo si te es más cómodo.

De todos modos, trata de empezar a hacer al menos un servidor que reciba conexiones, algo así. No te puedo decir cómo hacer todo el proyecto xD
#1624
Te pongo un ejemplo práctico:


socket *sockets;
listener li;

crearArray(&sockets);
inicializarSocketDeEscucha(li);

while(true){
    socket sock;
    sock = nuevoCliente(listener);
    if(sock) añadirSocket(&sockets, sock);
    porCadaSocket -i-{
        escucharYResponder(sockets[i]);
    }
}


En fin, es un esquema, con funciones que creo que entiendes lo que hacen. En bucle, haces estas acciones:
-1: Encuentras nuevos clientes si los hay.
-2: Escuchas y respondes a cada cliente. Si por ejemplo un cliente te envía un mensaje de chat, reenvías ese mensaje a todos los demás clientes.
#1625
Si es eso lo que quieres hacer, tendrás que hacer el cliente en Android, y el servidor. El servidor puede ser http, sí, pero me parece una pérdida de recursos. Sería mejor hacer un servidor dedicado a ese chat.

Sabiendo Java, Sockets y Threads (opcionalmente), no deberías tener problema. Solo idea el protocolo mediante el cual el servidor y los clientes se enviarán datos, y ponte a ello.

Para empezar, puedes hacrlo todo en java sin Android, por comodidad a la hora de depurar el servidor. Además, si lo haces en Java todo, puedes crear y compartir clases entre los proyectos, para así serializar datos a tu gusto y sin problemas.

Any question, be free.
#1626
Foro Libre / Re: Nombres de Personajes de series.
9 Noviembre 2015, 16:53 PM
Yo creo que si en 7 años no ha acabado lo que necesitaba, mal vamos no? xDDDDD

Post del 2008 ._.
#1627
Es totalmente absurdo que una comunidad se crea con el poder de secesionarse. Cataluña es de España. Cataluña, como el resto de comunidades autónomas, no tiene poder propio para irse. No tiene más poder que el que España le otorga.
Es una vergüenza que el gobierno permita este tipo de actos, que son verdaderas ofensas a España.

En otros tiempos, a este tipo de cosas se les llemaba declaraciones de guerra y traición.


Sorry, tenía que soltarlo :3
#1628
Los sockets abiertos, los conservas en un array. Luego, basta iterar por cada socket del array, y leer en caso de que haya bytes que leer, y enviar datos si es necesario.

Deberías estructurar tu programa. Crea funciones para hacer el código legible.
#1629
Programación C/C++ / Re: sudoku
8 Noviembre 2015, 21:04 PM
Presuponiendo las reglas del sudoku:
1: Comprueba fila a fila, que estén los 9 números.
2: Comprueba columna a columna, que estén los 9 números.

Esas 2 se pueden englobar en un: para caa número de la matriz, comprueba si se repite en su fila o columna. Si se repite, es incorrecto.

Por último, ve cuadro a cuadro comprobando si existe. Esta parte es la más complicada, y puedes dejarla de momento para el final.
#1630
Programación C/C++ / Re: Problema codeblocks
8 Noviembre 2015, 20:55 PM
¿Y si ejecutas tú el programa compilado?
¿El código que compilas es correcto?