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ú

Temas - Xedrox

#1
Java / Monitor de mensajes entre client/sever
8 Enero 2015, 20:25 PM
Hola gente, buenos tardes

      Tengo una aplicancion cliente/servidor bastante simple. Lo que quiero hacer es un programa que este entre medio de los dos, por lo tanto los mensajes del cliente van a mi programa, y lo salientes al server y viceversa. El programa funciona bien, pero quiero que sea en contra de fallos del cliente/servidor (timeouts/desconexiones,etc). El caso que no estoy pudiendo resolver es el siguiente:

1.- Se recibe un mensaje del cliente y se lo envia al servidor, el servidor responde y le envio ese mensaje al cliente correctamente
2.- Ambas aplicaciones (cliente y servidor) se encuentran conectadas a mi programa
3.- Apago el servidor
4.- El cliente envia un mensaje, se lo paso al servidor y me da timeout
5.- El servidor revive
6.- Probamos el punto 1 de vuelta pero parece que mi programa no le puede entregar ahora el mensaje al servidor y no puede reconectarse adecuadamente

Este es el codigo, alguna idea que puede ser?


package interceptorprocess;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;


public class GenericInterceptorProcess implements Runnable
{
private final String prefix_log_messages = "[CONNECTOR]";

//COMMUNICATION'S ORIGIN'S VARIABLES
ServerSocket serverSocketLocal;
Socket socketForLocal;
DataInputStream streamFromOrigin;
DataOutputStream streamToOrigen;
int len_message_from_origen;
byte[] buffer_msg_origin = new byte[4096];
byte[] message_origin = null;

//COMMUNICATION'S DESTINY'S VARIABLES
Socket socketToDestiny;
DataInputStream streamFromDestiny;
DataOutputStream streamToDestiny;
int len_message_from_destiny;
byte[] buffer_msg_destiny = new byte[4096];
byte[] message_destiny;

@Override
public void run()
{
    //OCCASIONAL USE
    String aux;

    try
    {
        logger("STARTING SERVER --- PORT NUMBER: " + "1234");

        //CREATING THE LOCAL SERVER SOCKET
        serverSocketLocal = new ServerSocket(1234);

        //CREATING THE DESTINITY CONNECTION WITH 15 TIMEOUT'S SECONDS
        socketToDestiny = new Socket();
        socketToDestiny.setSoTimeout(15000);

        //THIS LOOP MAINTAINS THE CONNECTIVITY WITH ONE CLIENT AT TIME
        while ( true )
        {
            logger("WAITING FOR A CONNECTION OF A CLIENT...");
            socketForLocal = serverSocketLocal.accept();

            //CREATING THE ORIGIN'S STREAMS
            streamFromOrigin = new DataInputStream(socketForLocal.getInputStream());
            streamToOrigen = new DataOutputStream(socketForLocal.getOutputStream());

            logger("CONNECTED CLIENT: " + socketForLocal.getRemoteSocketAddress() );

            //THIS LOOP MAINTAINS THE MESSAGES'S CHANGES
            while ( true )
            {
                logger("WAITING FOR A MESSAGE..");
                len_message_from_origen = streamFromOrigin.read(buffer_msg_origin);

                if ( len_message_from_origen < 0 )
                {
                    closeOriginStream();
                    break;
                }

                message_origin = new byte[len_message_from_origen];

                //SAVE THE ORIGIN'S MESSAGE INTO AN ARRAY WHO HAS THE EXACT SIZE OF THIS MESSAGE
                System.arraycopy(buffer_msg_origin, 0, message_origin, 0, len_message_from_origen);

                aux = new String(message_origin);
                logger("RECEIVED MESSAGE FROM ORIGIN: " + aux);

                //TRY TO CONNECT TO DESTINY
                try
                {
                    if ( !socketToDestiny.isConnected() )
                        socketToDestiny.connect(new InetSocketAddress("10.10.200.200",1234),5000);
                }
                catch(IOException ex)
                {
                    logger("CONNECTION REJECTED BY DESTINY: " + ex.getMessage());
                    continue;
                }

                //CREATING THE DESTINY'S STREAMS
                streamFromDestiny = new DataInputStream(socketToDestiny.getInputStream());
                streamToDestiny = new DataOutputStream(socketToDestiny.getOutputStream());

                logger("SENDING MESSAGE TO DESTINY: " + aux);

                //I HAD TO PUT THIS BLOCK BECAUSE IF THE DESTINY APPLICATIONS FAILS
                //OR NOT ANSWER, THE PROGRAM MUST KEEP LISTENING THE FOLLOWING MESSAGES
                try
                {
                    //SENDING MESSAGE TO DESTINY
                    streamToDestiny.write(message_origin);

                    //READING THE ANSWER MESSAGE
                    logger("READING MESSAGE FROM DESTINY...");

                    len_message_from_destiny = streamFromDestiny.read(buffer_msg_destiny);
                }

                //IN ONE OF THE FOLLOWINGS TWO CATCHS I GET THE ERROR
                catch (SocketTimeoutException ex)
                {
                    logger("IT DIDN'T COULD RETRIEVE A MESSAGE FROM DESTINY: " + ex.getMessage());
                    continue;
                }
                catch (SocketException ex)
                {
                    //THE "socketToDestiny.isConnected()" ALWAYS RETURNS TRUE SINCE THE FIRST SUCCESSFULLY
                    //CONNECTION, AFTER THAT, IF THE SOCKET IS DISCONNECTED, IT REMAINS RETURNING "true".
                    //THUS, I HAD TO MAKE THE NEXT CODE BLOCK
                    socketToDestiny.close();
                    socketToDestiny = new Socket();
                    logger("TRYING TO RECONNECT WITH DESTINY AND SEND THE MESSAGE... ");
                    socketToDestiny.connect(new InetSocketAddress(confs.destiny_ip,confs.destiny_port),confs.timeout_connections);
                    logger("READING MESSAGE FROM DESTINY AFTER ERROR...");
                    len_message_from_destiny = streamFromDestiny.read(buffer_msg_destiny);
                }

                message_destiny = new byte[len_message_from_destiny];

                //SAVE THE DESTINY'S MESSAGE INTO AN ARRAY WHO HAS THE EXACT SIZE OF THIS MESSAGE
                System.arraycopy(buffer_msg_destiny, 0, message_destiny, 0, len_message_from_destiny);
                aux = new String(message_destiny);

                logger("RECEIVED MESSAGE FROM DESTINY " + aux);

                //SENDING THE ANSWER BACK TO THE ORIGIN
                logger("SENDING BACK THE MESSAGE TO ORIGIN...");
                streamToOrigen.write(message_destiny);

                logger("MESSAGE DELIVERED SUCCESSFULLY!");
            } //INTERNAL LOOP OF MESSAGES

        } //INTERNAL LOOP OF CLIENTS
    } //TRY
    catch(IOException ex )
    {
        logger("THE SERVICE DIED: " +  ex.getMessage() );
        ex.printStackTrace();
    } //CATCH

} //RUN

private void closeDestinyStream() throws IOException
{
    streamFromDestiny.close();
    streamToDestiny.close();
}

private void closeOriginStream() throws IOException
{
    streamFromOrigin.close();
    streamToOrigen.close();
}

private void closeAll() throws IOException
{
    closeDestinyStream();
    closeOriginStream();
}

private void logger(String message)
{
    System.out.println(Utilidades.date() + " " + prefix_log_messages + " " + message);
}
}
#2
Java / WebService, concepto
30 Agosto 2014, 20:01 PM
En terminos de Java, un webservice es simplemente un "ServerSocket" que recibe y responde mensajes en formato XML?
#3
Java / Read timeout
28 Agosto 2014, 19:36 PM
Hola gente , como os va?

   Les hago una consultonta, resulta ser que tengo un programa "Java" que se conecta como cliente (usando la clase Socket) a otro programa. Para leer un mensaje, uso la clase "DataInputStream", el metodo (int read(bytes[])". Resulta ser que muchas veces me conecto a este programa satisfactoriamente, pero a veces no me contesta y me quedo en un "read" eterno, conoces alguna manera de ponerle un timeout a ese read?

Muchas Gracias
Saludos!
#4
Java / Duda conceptual acerca de los Socket's
23 Junio 2014, 16:04 PM
Hola gente, les hago una consulta. En mi poca experiencia laburando con Socket's e implementado clientes y servidores con exito, abstrayendome de las cuestiones de hardware. Ahora mi duda viene por este lado. Cuando comunico los socket's, simplemente apunto a un puerto y numero de IP, supongo que el socket que estoy creando se basa en el protocolo TCP/IP. Se pueden implementar socket's con otros protocolos, como X25? Gracias! Salutes!
#5
Java / char[] to struct
15 Junio 2014, 02:16 AM
Hola gente, como andan?

   Si se guían por el titulo, parece que me equivoque de sección, no? Pero no es así  ;D . Les comento, vengo trabajando con C++ y unos archivos de datos de una aplicación externa un tanto engorrosos de trabajar, pero al fin uno se arregla. Cada linea de estos archivos de datos puede tratarse como un registro de una base de datos. El método que me trae el registro en C++ me lo deja cargado en un "char[XXX]" donde XXX es la cantidad de bytes. Por un lado yo tengo, a modo ejemplo, el siguiente "struct":


struct MiClase
{
     short campo1;
     short campo2;
     char campo3[5];
     short campo4;
}


A su vez, el metodo de lectura me dejo un lindo char[11], vease que MiClase tiene un size de 11. Por supuesto que esos 11 bytes estan compuestos de caracteres no imprimibles que corresponden al campo 1,2 y 4. Si instancio un objeto de MiClase, como traspaso la informacion del char? Simplemente haciendo un "memcpy".

Ahora, descubri recientemente que tengo Java en este equipo, y hasta tengo un metodo en Java que lee estos archivos!. Solo que en vez de "char[]" me los deja en "byte[]". La consulta es, si tuviera en java una clase equivalente a mi estructura:


public class MiClase
{
     short campo1;
     short campo2;
     Char campo3 = new Char[5];
     short campo4;
}


Como puedo volcar la informacion del "byte[]" a un objeto de "MiClase". Algunos podria decirme que use arracopy y que lo haga campo por campo, pero quiero evitar absolutamente esto porque tengo varias clases que superan los 200 campos y seria muy costoso salirme de C++ a Java si no puedo implementar algo similar a "memcpy".

Desde ya muchas gracias
Saludos.

#6
Java / Cliente/Servidor basico
2 Junio 2014, 23:54 PM
Hola gente como va? A ver si me pueden dar una mano con esto porque no doy pie con bola, google no me sirvio de mucho tampoco :S .

Estoy armando un cliente/servidor para posterior uso de manejo remoto, pero ni siquiera lo puedo hacer simplemente en mi pc local. Me baje y compile estos ejemplos:

Codigo del server:

package serverclienttest;

import java.net.*;
import java.io.*;

public class Server
{
    final int PUERTO=5000;
    ServerSocket sc;
    Socket so;
    DataOutputStream salida;
    String mensajeRecibido;

    //SERVIDOR
    public void initServer()
    {
        BufferedReader entrada;

        try
        {
            sc = new ServerSocket(PUERTO );/* crea socket servidor que escuchara en puerto 5000*/
            so=new Socket();
       
            System.out.println("Esperando una conexión:");
            so = sc.accept();

            //Inicia el socket, ahora esta esperando una conexión por parte del cliente
            System.out.println("Un cliente se ha conectado.");

            //Canales de entrada y salida de datos
            entrada = new BufferedReader(new InputStreamReader(so.getInputStream()));
            salida = new DataOutputStream(so.getOutputStream());

            System.out.println("Confirmando conexion al cliente....");
            salida.writeUTF("Conexión exitosa...n envia un mensaje :D");

            //Recepcion de mensaje
            mensajeRecibido = entrada.readLine();
            System.out.println(mensajeRecibido);

            salida.writeUTF("Se recibio tu mensaje.n Terminando conexion...");
            salida.writeUTF("Gracias por conectarte, adios!");

            System.out.println("Cerrando conexión...");
            sc.close();//Aqui se cierra la conexión con el cliente

        } //try
        catch(Exception e )
        {       
            e.printStackTrace();
            System.out.println("Error: "+e.getMessage());
        } //catch
    } //initServer
} //class


Codigo del cliente:


package serverclienttest;

import java.net.*;
import java.io.*;

public class Client
{

    final String HOST = "localhost";
    final int PUERTO=5000;
    Socket sc;
    DataOutputStream mensaje;
    DataInputStream entrada;

    //Cliente
    public void initClient() /*ejecuta este metodo para correr el cliente */
    {

        try
        {
            sc = new Socket( HOST , PUERTO ); /*conectar a un servidor en localhost con puerto 5000*/
            //creamos el flujo de datos por el que se enviara un mensaje
            mensaje = new DataOutputStream(sc.getOutputStream());

            //enviamos el mensaje
            mensaje.writeUTF("hola que tal!!");

            //cerramos la conexión
            sc.close();
        }
        catch(Exception e )
        {
            System.out.println("Error: "+e.getMessage());
            e.printStackTrace();
        }
    }//initClient
}//class


Al ejecutar el servidor (por medio de initServer) se queda en "Esperando una conexion.." , OK. Al ejecutar el cliente en otra instancia (por medio de initClient) da el siguiente error:


run:
Esperando una conexión:
Un cliente se ha conectado.
Confirmando conexion al cliente....
java.net.SocketException: Software caused connection abort: recv failed
Error: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at serverclienttest.Server.initServer(Server.java:39)
at serverclienttest.ServerClientTest.main(ServerClientTest.java:21)
BUILD SUCCESSFUL (total time: 7 seconds)


Y no se que varia que en otras oportunidades da esto:

run:
run:
Esperando una conexión:
Un cliente se ha conectado.
Confirmando conexion al cliente....
      hola que tal!!
java.net.SocketException: Software caused connection abort: socket write error
Error: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at java.io.DataOutputStream.write(DataOutputStream.java:107)
at java.io.DataOutputStream.writeUTF(DataOutputStream.java:401)
at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)
at serverclienttest.Server.initServer(Server.java:42)
at serverclienttest.ServerClientTest.main(ServerClientTest.java:21)
BUILD SUCCESSFUL (total time: 6 seconds)


Por si las dudas uso Netbeans y desactive el firewall de windows para la prueba.

Gracias de antemano.

Saludos!
#7
Programación General / Cuestion de diseño
1 Junio 2014, 23:43 PM
Buenas tardes!

   Les comento mi situacion. Actualmente me encuentro con un programa que funciona en mi programa local pero que necesita ejecutar una accion (enviar un comando) a un servidor remoto simil-unix, el servidor debe recibir la peticion, ejecutarla y al finalizar devolverle informacion a la pc local. Se me ocurren las siguientes soluciones, pero queria ver con ustedes cual es la mas apropiada:

- Crear un programa que se conecte via telnet, mande la orden, se quede loopeando hasta que el servidor conteste con la data necesaria y salga. El problema con esto es que si la cantidad de acciones a ejecutar se acumula demasiado, seria bastante molesto andar conectandose y desconectandose via Telnet. Ademas es muy engorroso programar con Telnet porque hay que manejar el texto de la consola como respuesta de que si salio o no.

- Crear un socket en el cliente (pc local) y un socket del lado del servidor. Cada vez que se necesita ejecutar algo, la pc local le pasa la orden al socket local y este a su vez se lo pasa al servidor. Esta me parece la solucion mas prolija, pero me procupa toparme con problemas de firewall, puertos u otras cuestiones de seguirdad informatica fuera de mi alcance.

Por si las dudas aclaro que uso Java para todo.

Gracias
Saludos!
#8
Hola gente, como va?

   Les hago una consulta, tengo un programa bastante sencillo. Una ventana con un JLabel y un boton. Al presionar ese boton, se realizan operaciones sobre archivos, y el JLabel deberia ir modificandose segun el archivo que se este procesando en cuestion. El programa funciona bien, pero el JLabel no se actualiza hasta terminar con todos los archivos, es decir, solo se modifica cuando llega al ultimo valor. Es curioso que tambien el boton queda precionado hacia adentro mientra se procesa lo declarado en su "actionPerformed" que es lo que contiene el procesamiento de la logica de los archivos. Me da impresion que la GUI no actualiza mientras se esta procesando algo.

Alguna idea?

Muchas Gracias
Saludos!
#9
Hola gente como les va. Tengo un modem y un router wifi que suple de internet a la red de mi casa, la misma esta conformada por:

2 Computadoras de escritorio que se alimentan a traves de cables ethernet
2 Notebook que se conectan por wifi
1 PS3 que se conecta por wifi
1 Telefono celular HTC Desire S que se conecta por wifi

Si bien mi telefono se conecta bien al wifi, hay aplicaciones que no andan, a veces no andan ninguna y pocas veces anda normal. Por ejemplo, ahora estoy conectado, si navego por el browser el telfono me carga bien las paginas, pero no me sincroniza ninguna aplicacion (como gmail). Si entro a google play (tengo android), siempre me dice "Sin conexion". Alguna idea que puede ser? Esto ya me tiene podrido...

Muchas gracias
Saludos
#10
Hola gente, como va, estoy aburrido de vacaciones, y como juego al counter striker tengo ganas de hacer trampa jeje. Veran, los cheat's que andan circulando son muy malos y la mayoria los detecta el "sxe injected" asi que decidi hacer mi propio cheat al estilo aimbot. En primer lugar, el cheat no tendra ninguna interaccion con el CS o SXE en si, es decir tengo la idea de hacerlo funcionar como un programa totalmente apartardo de estos dos. Basicamente lo que busco es hacer un programa que mueva el mouse a un punto de la pantalla ante la existencia de una determinada estructura.

Arranquemos por algo sencillo, supongamos que tengo el icono de mi pc en el escritorio y quisiera que un programa mueva el punto del mouse hacia el centro de ese icono, que lenguaje o tecnologias deberia aprender para hacer esto si tienen experiencia en algo similar? A la larga, el icono de la pc deberia ser la cabeza de algun jugador del CS.

Muchas gracias
Saludos
#11
Foro Libre / Usar SXE Injected en maquina virtual
25 Diciembre 2013, 19:56 PM
Hola gente como les va. Les comento que tengo Windows 8 y emulo en una maquina virtual Windows XP (con virtual box). El problema que estoy teniendo es que el "SXE Injected" al querer ejecutarlo en una maquina virtual me dice justamente "Sorry, this application cannot run in a virtual machine". Alguien sabe como puedo hacerla funcionar? Googleando encontre dos soluciones que no funcionaron, activando el modo de compatibilidad (ya probe todas las combinaciones) y/o instalando la aplicacion al mismo nivel que "Program Files"...

Porque uso una maquina virtual? Porque quiero probar todas las porquerias que andan dando vuelta en internet de cheat's, pero como muchas vienen con troyanos o virus, no quiero dañar mi windows 8 :) . Y empezar hacer mis propios cheats tambien en C++.

Gracias
Saludos!
#12
Hardware / Mi tablet no carga!
7 Diciembre 2013, 20:09 PM
Hola gente como les va,

    Me acaba de llegar esta tablet que pedi: http://www.aliexpress.com/item/Gooweel-tablet-10-inch-Capacitive-screen-ATM7029-Quad-core-Android-4-2-HDMI-WIFI-camera-Bluetooth/897541161.html . Lo que me pasa es lo siguiente

1.- La prendi y andaba bien hasta que se quedo sin bateria (logico, tenia 2 porciento nomas)
2.- Cuando la pongo a cargar con su cargador, el enchufe no entra del todo en la tablet, se traba a mitad de camino y no entra mas. Tampoco intente hacerlo mas fuerte por miedo a romperla.
3.- Intente conectarla mediante USB a la PC para que cargue a traves de ahi. Aparecio el logo de que se estaba cargando pero en realidad no lo hace :S. Si la desenchufas e intentas prender te aparece inmediatamente el cartelito que no tiene bateria.

Alguna idea?

Gracias
Saludos!
#13
Programación C/C++ / New vs objeto automatico
3 Noviembre 2013, 19:25 PM
Buenas gente como va?

  Queria consultarles que ventaja da usar memoria dinamica al crear un objeto?

Cuando uno crea un objeto puedo hacerlo de estas dos formas:


Clase objeto();
Clase *objeto = new Clase();


Me mola usar memoria dinamica porque tengo que hacer "delete" por todos lados, y me estoy volviendo loco para hacerlo cuando ocurre una excepcion en el programa. No deberia hacer nada de esto si NO usara memoria dinamica. Adema se que se usa memoria dinamica cuando no sabes cuanto va ocupar algo, pero un objeto siempre ocupa lo mismo..

Gracias
Saludos
#14
Hacking / Cheat engine
27 Octubre 2013, 20:39 PM
Buenas gente como va?

    Estoy tratando de obtener vida infinita en el counter strike 1.6 cs no steam cambiando el valor de la vida con el programa en referencia. Cuando lo hago, y vuelvo al juego aparece el valor que yo le digo, pero cuando me disparan parece que el cambio no se ve y me mata normalmente. Es el server que se guarda la vida previa o el sx injected que me garca en esto ?

Gracias
Saludos
#15
Programación C/C++ / Switch con cadena
28 Septiembre 2013, 20:07 PM
Buenas gente, tengo que hacer un programa que reciba por consola los siguientes parametros:

1: - Campo
2: - Otro valor sin importancia para el problema que tengo..

Parte del codigo del programa va ser con un switch de acerdo al valor del campo, pero este es un string y no puedo ponerlo en un switch alguna idea? No puedo usar if/else ya que hay mas de 500 opciones y volveria muy ineficiente el programa. Trate de hacer una funcion que dado el string devuelva un valor entero, pero no puedo hacer lo siguiente


switch(strToInt(campo))
{
        case strToInt("Opcion1"):   //Aca no me deja poner un metodo a pesar que el mismo devuelve int
                      ....
                      break;
             
         ....

}



Muchas gracias
Saludos!
#16
'Hola que tal gente!

       Les hago una consulta, actualmente trabajo en C/C++ compilando y linkeando con un programa de consola (c99) en un equipo remoto para aplicaciones que corren sobre el mismo. Los fuentes del programa y librerias tambien se encuentran en el, lo que hago es usar un FTP Client y Notepad++ para hacer las ediciones necesarias. El notepad++ es una joya, pero solo le faltaria una cosa, los menus predictivos de codigo, por ejemplo, cuando creas un objeto y escribis "->", que te despliegue los métodos y miembros de ese objeto. Conocen alguno que pueda tener esta funcion? Que no sea eclipse.. (por su lentitud y consumo de recursos).

Muchas Gracias
Saludos!
#17
Windows / [Windows 8] Tengo blueetooh?
7 Agosto 2013, 02:32 AM
Hola Gente, les hago una consulta , tengo una notebook con Windows 8 y quiesiera asegurarme que tengo blueetoh. Alguna idea?? Estoy tratando de sincronizar mi celular con la notebook pero no se encuentran entre ellos, asi que empece a dudar si el equipo lo tiene y windows 8 me esta poniendo un boton por defecto. Si pongo en buscar "bluuetooh", me aparece una opcion que dice "Agregar dispositivo Blueetoh", pero cuando busca no encuentra nada, y eso que tengo en modo visible celular.

Muchas Gracias
Saludos
#18
Programación C/C++ / Capturar excepcion
5 Agosto 2013, 19:25 PM
Buenas gente, tengo la siguiente funcion que guarda una subcadena en otra. El problema es que cuando la pifio con los indices el program genera un dump. No puedo usar strlen ni el caracter nulo para extrer la subcadena, porque la cadena original esta llena de nulos intermedios que tengo que conservar, asi que simplemente hago:


void subString(char *src,char *dest,int posInicial,int longitud)
{
for(int i=0;i<longitud;i++)
{
dest[i]=src[posInicial+i];
}
}


Como captura la excepcion que se genere cuando hago una referencia a un indice que no existe?

Muchas Gracias
Saludos
#19
Programación C/C++ / Long long to char
4 Agosto 2013, 23:26 PM
Buenas gente, les hago una consulta, tengo una clase con la siguiente estructura:


class Dummy
{
    public:
         char mensaje[4];
         long long valor;
         char mensaje2[4];

...



Las variables de ese objeto las tengo instanciadas de la siguiente manera:


mensaje: "hola"
valor:  0
mensaje2: "hola"


Cabe aclarar que los array de char no se le carga caracter nulo.

Lo que tengo que hacer es convertir este objeto en un "char*" que despues se lo paso por parametro a una clase (la cual no tengo visible el codigo) para que luego lo grabe en un archivo. Se que parece raro pero tengo que usar esa clase por limitacion de la plataforma. Prosigo, el main me queda asi:


Dummy obj;
instancarVariablesObjetos(obj);
int longObj=sizeof(Dummy); //Da 4 + 8 + 4 bytes=16, ok  
char *buffer=(char*) malloc(longObj);
memcpy(buffer,&obj,longObj);
grabarEnArchivo(buffer);


Lo que esperaba es que grabe esto, considerar que long long tiene 0 setado como valor, osea todos nulos en bytes:


hola[NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL]hola


Pero me quedo asi:


hola[NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL][NULL]hola


Vease que hay dos nulos de mas, tienen idea porque puede ser?

Muchas gracias
Saludos!


#20
Programación C/C++ / Objeto to char*
3 Agosto 2013, 20:34 PM
Buenas gente, tengo un problema que me esta rompiendo la cabeza, el tema es asi. Tengo un objeto dummy como este:


class Dummy
{
    public:
            char *campo1;
            char *campo2;
            int campo3;
            long long campo4;
   
    Dummy()
    {
          char *aux=(char*)malloc(5);
          char *aux1=(char*)malloc(5);
         
          strcpy(aux,"hola");
          strcpy(aux1,"xedr");
         
          campo1=aux;
          campo2=aux1;
          campo3=55;
          campo4=0;
    }
    ~Dummy(){}
   
    void imprimir()
    {
         printf("CAMPO 1: %s\n",campo1);
         printf("CAMPO 2: %s\n",campo2);
         printf("CAMPO 3: %d\n",campo3);
         printf("CAMPO 4: %d\n",campo4);
    }       
};


Lo que tengo que hacer en el main es guardar ese objeto en un char*. Debo considerar que en el char se guardan tipos como int y long long que deben ser guardados con los binarios, y no en formato ascci. Por ejemplo, como este objeto "p" va terminar con un "long long" de 8 bytes en 0, las ultimas 8 posiciones del char* espero que tengan un "NULL" guardado en esa posicion. Lo que hago en el main es esto, pero al imprimir el char* no salen los caracteres que espero, por lo menos la cadena deberia comenzar con "holaxedr....<binarios>.."


int main()
{
    Dummy *p=new Dummy();
    printf("El objeto pesa: %d\n",sizeof(*p)); //24
    char *a=(char*) malloc(24);
    memcpy(a,p,24);
   
    printf("%s",a);
   
   
    system("PAUSE");
    return 0;
}



La salida del programa sobre el segunda printf es:


-7>


Como se vera, nada que ver a lo esperado.

Espero haberme explicado bien y que puedan ayudarme.

Muchas Gracias de antemano.
Saludos!



#21
Buenas gentes,

   Les hago una consulta, uso Android Studio para hacer aplicaciones. Las pruebo en AVD y todo bien. Pero como hago para probar una aplicacion compilada por mi en mi telefono. Copio los archivos a alguna carpeta en el telefono? Alguna idea? Gracias!!
#22
Windows / No suspender notebook
1 Mayo 2013, 20:51 PM
Hola, como hago para que mi notebook no se suspenda cuando le bajo la tapa contra el teclado? Lo quiero asi ya que la uso como reproductor multimedia para la tele. Tengo windows 7.
#23
Buenas gente, como va?

  Les comento, tengo un router wifi que tiene dos computadoras conectadas por cable a sus tarjetas ethernet y una pc portatil que se conectan por wifi. Tanto las computadoras como la pc portatil se conectan a la red LAN y a internet sin problemas, pero tengo un telefono celular con android que se conecta a la red wifi, pero entra a internet cuando quiero. Tengo que andar activando y desactivando el "wifi" del celular a cada rato hasta que en algun momento recibe internet. Cual puede ser la causa de esto? Hay alguna forma de que cuando se conecte al wifi lo haga con internet directamente sin tener que andar conectado y desconectando? En algunas ocasiones hasta el modem tuve que reiniciar, y no siempre funciono de todas maneras.
#24
Buenas gente, como os va
????


La consulta es, conocen algun buen reproductor de video que incluya lectura de subtitulos srt? Que lea todos los formatos posible. Me baje el MX Reproductor pero se ve todo lento :S:S:S:S.
#25
Programación General / Desarrollo en Android
11 Febrero 2013, 22:52 PM
Buenas gente,

   Una consulta, estoy interesado en aprender HTML5, saben si se puede usar HTML5 en equipos con Android? Tengo un LG-E400g, la version de Android dice que es la 2.3.2, pero... todos los equipos pueden tener la ultima version de Android o varia por equipo la version que puede tener?

Muchas Gracias
Saludos!

P.D Does android rules over ios and blackberry and windows phone?
#26
Buenas gente,

Un familiar me trajo un celular de oferta de chile (lg-e400g). Soy de Argentina, Buenos Aires y tengo una linea con tarjeta de Personal. Me gustaria usar mi linea con este celular. Obviamente le puse el chip y dice que es invalido. Que es lo que hay que hacer para que funcione?

Segui paso a paso lo que dice este tutorial y no funciono .

http://www.youtube.com/watch?v=OUg3fwKN8jM

Basicamente el video te hace bajar el firmawe de acuerdo al Imei y el modelo del celuar, instalar el driver y como reinstalar el celular. Pero no ha hecho nada, el programa (KDZ_FW_UPD) se cuelga mientras hace lo suyo (Windows dice que este programa ha dejado de funcionar, si quiero cerrarlo o debuguearlo).

Si sirve de algo tengo windows 7 64bits.

Como puedo hacer? Conocen algun turorial efectivo?

Gracias!!
#27
Windows / Ayuda urgente!
19 Enero 2013, 21:55 PM
Buenas gente, no se que paso que cuando arranco mi maquina con Windows XP SP3, al arrancar me pregunta como quiero iniciar (normalmente, en modo seguro, con la ultima configuracion buena, etc..). El problema es que no arranca con ninguna opcion, salta un pantallazo azul que no me da tiempo a leer nada y se reinicia, y empieza de vuelta con lo mismo. Tampoco tengo una unidad lectora de CD/DVD para iniciar un ubuntu live ni nada de diagnostico. Conocen algun programa que botee desde un pendrive un windows o algo asi para salvar los archivos?

Gracias!!
#28
Programación C/C++ / Eclipse juno
12 Enero 2013, 02:32 AM
Buenas gente, estoy tratando de compilar un simple hola munco en C, pero eclipse Juno no sabe donde esta el compilador ni las librerias (ya que dice que no encuentra stdio.h), saben como configurar esto?

Gracias!
#29
Hardware / Cuidado de pantalla de notebook
6 Enero 2013, 19:20 PM
Buenas, acabo de perder el protector de pantalla (que viene de fabrica) de la pantalla de la notebook. Se usaba como separador entre el teclado y la pantalla al estar cerrada la notebook. Es lo mismo o puede perjudicar a la pantalla que no este??



Gracias
#30
Buenas gente,

  Tengo muchas celdas que tienen espacios al final, el tema que tengo que hacer click en cada una y ver la posicion del cursor para saber si sobran espacios a derecha. Hay alguna forma de mostrar todos los caracteres? Por ejemplo el notepad++ te pone puntitos en el medio por cada espacio y una flechita por los tabs. En la mayoria de los programas se representa con una "P" esto.


Gracias!
#31
Programación General / Android!
31 Diciembre 2012, 21:04 PM
Buenas,

  Me interesa en iniciarme en la programación para aplicaciones de celulares, para así después venderlas  :laugh:. Alguien podria indicarme algun PDF para empezar a programar y que emulador necesito?. Elijo esta plataforma porque me parece que es la que mas mercado tiene. Estuve investigando en internet, pero hay mucha sobreinformacion y me confunde :S. Capaz que alguien la tiene clara aca y me puede asesorar mejor  ;-).


Gracias
Saludos!
#32
Buenas gente, estoy tratando de guardar un salto de linea en un archivo con C, pero no puedo. Solo me queda el line feed (LF) y necesito el CR (carrier return) y el LF para que quede el salto completo. Este es el programa que estoy usando.


#include <stdio.h>


struct transaccion
{
       long long importe;
} trx;

void myfwrite(char * buffer, size_t bytes, FILE *fp)
{
    while(bytes)
        fputc(buffer[--bytes],fp);
}

int main()
{
    char campo1[5]="AAAA";
    char campo2[5]="XXXX";
    char salto='\n';
    trx.importe = 6938217;
   
    FILE *fp = fopen("Base.txt","ab");
   
    fprintf(fp,"%s",campo1);
    myfwrite((char*)&trx,sizeof(trx),fp);
    fprintf(fp,"%s",campo2);
   
    fputs(&salto,fp);
   
    fclose(fp);
    return 0;
}


Y el resultado que obtengo en el archivo (visto con el Notepad++):


AAAA[NUL][NUL][NUL][NUL][NUL]iÞiXXXX[LF]
XXXX


Necesito que quede asi:


AAAA[NUL][NUL][NUL][NUL][NUL]iÞiXXXX[CR][LF]


Muchas Gracias!

P.D. Alguien sabe porque me esta duplicando las "XXXX"? Solo estoy guardando una vez ese valor..
#33
Buenas gente, estoy haciendo un spike (programa de prueba) para guardar en un archivo binario, el contenido de una variable de tipo "long long",por ejemplo supongamos que tenemos el valor "6938217" guardado en esa variable, y lo guardo en un archivo en modo binario, el mismo quedaria asi (visto con el Notepad++):


iÞi[NUL][NUL][NUL][NUL][NUL]


Lo que necesito es que me queda asi:


[NUL][NUL][NUL][NUL][NUL]iÞi


Alguna idea? Gracias!

El programa que genera esto es el siguiente:


#include<iostream>
#include<fstream>
#include<sstream>
#include <stdlib.h>

using namespace std;

int main()
{
    struct transaccion
    {
           long long importe;
    };
   

   
   
    ofstream file;
    file.open("Base.txt",ios::app | ios::binary);
   
    struct transaccion trx;
   
    trx.importe=6938217;
   
    file.write((char *)&trx,sizeof(trx));
   
    file.close();
   
   
    return 0;
       
}

#34
Programación C/C++ / Generar archivo en C++
24 Diciembre 2012, 01:36 AM
Buenas, estoy tratando de hacer un programa que genere un archivo con la siguiente estructura:


XXXX<caracteres long long en binario>AAAA


Para estoy tratando de hacerlo con el siguiente programa:


#include<iostream>
#include<fstream>
#include<sstream>

using namespace std;

int main()
{
   struct transaccion
   {
          string campo1;
          long long campo2;
          long long campo3;
          string campo4;
   };
   
   ofstream file;
   file.open("Base.txt",ios::binary);
   
   struct transaccion trx;
   
   trx.campo1="XXXX";
   trx.campo2=1000;
   trx.campo3=1000;
   trx.campo4="AAAA";
   
   file.write((char *)&trx, sizeof(trx));
   file.close();
   
   return 0;
     
}


El tema es que me queda todo binario :(. Alguna idea como hacerlo. Por favor necesito que me quede de esta manera, ya se que es al pedo hacer esto pero necesito que al abrirlo con el Notepad++ se vea como describo al principio.

Gracias
Saludos

#35
Programación C/C++ / Arrays de chars to long long
24 Diciembre 2012, 01:03 AM
eLIMINAR EL TEMA POR FAVOT.
#36
Buenas tengo el siguiente programa que abre un archivo de texto, lee las lineas y las parsea para mostrarlas por consolas, pero cuando termino de mostrarlas todas se cuelga el programa, tienen idea que puede ser? Muchas Gracias, saludos!


#include<iostream>
#include<string>
#include<fstream>
#include <sstream>

using namespace std; //evita que escriba el nombre del paquete std para cada funcion ej: std::cout...

int main()
{
   
    struct transaccion
    {
         string campo1;
         string campo2;
         string campo3;
         string campo4;
    };
   
    struct transaccion trx;
   
    ifstream input;
    input.open("Transacciones.txt",ios::in);
    char buffer[250];
   
     
    while(!input.eof())
    {
        char *auxSplit;
       
        input.getline(buffer,250);
       
        auxSplit = strtok(buffer,";"); /* Separador ";" */
        trx.campo1 = auxSplit;
        cout << trx.campo1 << "\n";
       
        auxSplit = strtok (NULL, ";");
        trx.campo2 = auxSplit;
        cout << trx.campo2 << "\n";
        auxSplit = strtok (NULL, ";");
       
        trx.campo3 = auxSplit;
        cout << trx.campo3 << "\n";
        auxSplit = strtok (NULL, ";");
       
        trx.campo4 = auxSplit;
        cout << trx.campo4 << "\n";
       
        delete(auxSplit);
    }
   
    input.close();
    return 0;
}
#37
Windows / Resolucion de windows xp
21 Noviembre 2012, 04:32 AM
Hola tengo windows 7 en mi notebook con una resolucion de 1366x768, hasta ahi joya. Luego levanto una maquina virtual con windows xp sp3 y no puedo usar es resolucion (si me paso de 1024x768 se me va de mambo la pantalla) como puedo usar esta resolucion en la maquina virtual si la misma no figura en la barra desplazadora? gracoas
#38
Windows / Escritorio remoto, problema
20 Noviembre 2012, 02:20 AM
Buenas gente como va..

  El tema es asi. Tengo una PC de 32 bits con windows XP SP3 y estoy tratando de levantar un escritorio remoto de Windows 7. Cuando lo levanto me aparece mi usuario y me logueo correctamente, pero cuando entra se queda toda la pantalla negra :s. Alguna idea?

Muchas gracias
Saludos
#39
Multimedia / Cortar video de 5gb sin perder calidad
10 Noviembre 2012, 18:05 PM
Hay algun programa que me permita cortar un video de alta calidad que pesa 5GB en dos videos sin perder calidad? Gracias
#40
Juegos y Consolas / God of war collection
3 Noviembre 2012, 05:29 AM
Ola gente, tengo god of war collections, dice que tiene 5 full game pero solo pude jugar al I, II y  III. Alguien sabe donde estan los de PSP?
#41
Buenas gente,

   Les hago una consulta, estoy tratando de generar un archivo binario que tiene masomenos la siguiente estructura por cada registro

242 caracteres ascci 8 numeros (long long cada uno) 273 caracteres ascci e insertar un salto de linea.



#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

/* Defino la estructura*/
struct tipoRegistro
{
   char pri[242];
   long long num1;
   long long num2;
   long long num3;
   long long num4;
   long long num5;
   long long num6;
   long long num7;
   long long num8;
   char ter[273];
};

int main()
{


   tipoRegistro tran;
   
 
   ofstream fsalida("TEMP", ios::out | ios::binary);
   

   
   
   strcpy(tran.pri,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   
 
   
   tran.num1=0;
   tran.num2=0;
   tran.num3=0;
   tran.num4=0;
   tran.num5=0;
   tran.num6=0;
   tran.num7=0;
   tran.num8=0;
   
   
 
   
   strcpy(tran.ter,"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
   


   cout << sizeof(tipoRegistro) << endl;
   
   fsalida.write(reinterpret_cast<char *>(&tran), sizeof(tipoRegistro));
   fsalida.close();

   return 0;
}





Los porblemas son los siguientes

1) Como puedo poner el salto de linea? Siempre me sale todo seguido, y necesito el salto de linea porque asi lo va leer otra aplicacion. Asi como esta ahora genera un registro a continuacion del otro, y con '\n' no funciona.

2) Cuando abro el archivo con notepad, veo caracteres binarios al final del registro :S, no se de donde salen.

Muchas Gracias!
Saludos!
#42
Software / Automatizacion de GUI
20 Agosto 2012, 20:06 PM
Buenas gente, estoy buscando algun software que permita automatizar pruebas sobre aplicaciones de escritorios, grabando una macro de los botones y formularios que se van llenando para repetirlo automaticamente. Lo mismo que hace Sellinium con una pagina Web, pero con aplicacion de escritorio. Por el momento en google no encontre nada :S y tuve que descartar estas dos herramientas:

UI Automation (es a nivel programacion y solo para .NET)
Rational Robot (no puedo descargar la trial!!!, no me deja registrarme en la pagina de IBM) !!!

Gracias
Saludos
#43
Buenas, les hago una consulta, alguien sabe si se pueden automatizar pruebas de aplicaciones de escritorio? Grabando alguna macro o algo?

Gracias
Saludos!
#44
Hola gente, les hago una consulta, tengo dos juegos de PlayStation 3 y uno se me cuelga y hace que tenga que reiniciar la play apretando el boton de adelante, Need for speed The Run, saben si es el juego, a alguien mas le ha pasado?

Muchas Gracias
Saludos
#45
Gente, unas dudas:

Como puedo ver vídeos del pendrive en la play? Probé con varios formatos, mkv y avi. Pero no los reconoce...

Actualmente tengo un televisor CRT de 29 pulgadas y se conecta a la play con los cables de color blanco, rojo y amarillo. Hay mucha diferencia si compro un televisor con HDMI full hd 1080? LED o LCD es lo mismo para un 32 pulgadas?

Que juegos recomiendan? Ya juegue los assassins creed. Hay alguno para matar zombies con el motion?

Gracias!