• Miércoles 6 de Noviembre de 2024, 06:56

Mostrar Mensajes

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


Mensajes - Quity_Ibias

Páginas: [1]
1
C/C++ / Punteros a estructuras
« en: Miércoles 13 de Agosto de 2008, 19:48 »
Hola!!!

Tengo un problema y si alguien puede ayudarme o pasarme alguna pagina donde pueda encontrar información se lo agradecería.

Tengo un puntero a una estructura que yo cree. Y necesito convertir el puntero a la estructura en un char* (ya que necesito enviarlo mediante una cola de mensajes), a continuación, deseo convertir el char* en un puntero a mi estructura (ya que se supone que desde otro proceso recibo los datos de la cola de mensajes) o por lo menos obtener los campos de ese char * de una forma facil.

Aqui les dejo lo más importante del codigo a ver si saben como podría solucionarlo.

//DEFINICION DE ESTRUCTURAS
typedef struct
{
   char blanco;
   char letra[2];
   
}letras;
typedef struct
{
   char tipo_mensaje[2];
   char id_servtomo[10];
   char dir_ip[16];
   int PID;
   int puerto;
   letras lista_de_letras[28];

}datos_alta;



datos_alta* datos_cola;

//DIMENSIONO LOS PUNTEROS A LAS ESTRUCTURAS
datos_cola = (datos_alta*)malloc(sizeof(datos_alta));


//ESTO CORRESPONDE A LA FUNCION QUE ENVIA LOS DATOS--> Estos datos los copio correctamente en datos_cola (ya que los muestro por pantalla y salen bien)
datos_cola->tipo_mensaje[1]='';
datos_cola->tipo_mensaje[0]='A';
datos_cola->PID=pid;
strcpy(datos_cola->dir_ip, ip);
datos_cola->puerto=puerto;
memcpy(datos_cola->lista_de_letras,(char*)list, sizeof(letras));
strcpy(datos_cola->id_servtomo, id);

//Para enviarlo mediante la cola de mensajes
char datos[2048];
memcpy(datos, datos_cola, sizeof(datos_cola));


//se supone que recibo los datos de una cola de mensajes en otra función distinta, lo más basico es lo siguiente.

datos_alta * peticion_recibida = (datos_alta*)malloc(sizeof(datos_alta));
//en datos es un char y obtengo los distintos datos.
char datos [2048]
memcpy(peticion_recibida, datos, sizeof(datos));
peticion_recibida->dir_ip;
peticion_recibida->id_servtomo;
peticion_recibida->PID;
El unico dato que se me muestra correctamente es peticion_recibida->tipo_mensaje . El resto de los datos sale 0,
excepto peticion_recibida->id_servtomo que muestra IDTOMO cuando debería mostrar IDTOMOS.

¿Alguna idea de donde esta el error?.

Gracias de todas formas por las molestias

2
C/C++ / Error 10038 Socket
« en: Lunes 11 de Febrero de 2008, 19:26 »
Hola de nuevo!!!

Tengo un problema...he realizado un programa en el que se comunican varios aplicaciones mediante sockets udp.

Para probarlo lo hice de forma local es decir poniendo la ip 127.0.0.1 y distintos puertos. Todo funciona bien excepto cuando utilizo la funcion select para escuchar si he recibido datos, que me da el error 10038. He estado buscando por internet y he leido que es por que utilizo dicha IP(que hay sockets repetidos, pero he cambiado los nombres de los sockets y todo..). Habria alguna forma de probarlo en un unico ordenador con distintas ips??..o bueno si alguien sabe por que se produce ese error. Si no pongo el select de los sockets todo va bien, pero yo quiero un temporizador para comprobar si llegan a tiempo los datos recibidos.

Gracias de antemano

3
C/C++ / Re: Temporizadores C++
« en: Lunes 11 de Febrero de 2008, 19:21 »
ok, gracias eso haré.

:)

4
C/C++ / Temporizadores C++
« en: Viernes 8 de Febrero de 2008, 20:17 »
hola!

Tengo un programa que muestra al usuario un menu y este debe de escoger una opcion. Si tras "x" tiempo el usuario no introduce ninguna opción el programa deberá pasar a ejecutar otra funcion que se encargará de recibir datos de otra aplicacion(mediante socket udp), si tras "x" tiempo no recibe datos debera pasar de nuevo al menu y así sucesivamente.

He estado mirando por internet y no encuentro información acerca de que temporizadores utilizar.

Si alguien pudiera mostrarme algun enlace, ejemplo lo que sea, es que estoy bastante perdida.


Muchas gracias

5
C/C++ / Re: Problemas Con Sockets Udp.
« en: Domingo 27 de Enero de 2008, 17:09 »
Gracias por contestar!!

Realizo lo que usted me dijo:

Datos_Componenes_Conexion dc;
sendto(s, &dc, sizeof(dc), 0, &toaddr, sizeof(toaddr));

Pero me da un error
Error   8   error C2664: 'recvfrom' : cannot convert parameter 2 from 'Datos_Componentes_Conexion *__w64 ' to 'char *'   

Y he estado mirando y si lo declaro de la siguiente forma no me daria el error:

Datos_Componentes_Conexion *dc;

sendto(s, (char*)dc, sizeof(dc), 0, &toaddr, sizeof(toaddr));

Sería correcto, o me daría problemas al recibirlos?, tambien los recibo con Datos_Componentes_conexion *dc.

Gracias, de todas formas.

6
C/C++ / Problemas Con Sockets Udp.
« en: Domingo 27 de Enero de 2008, 16:14 »
Hola!

Estoy programando una aplicación que utiliza sockets udp. Necesito enviar una estructura que yo misma he declarado.

struct Datos_Componentes_Conexion
{

int Estado;
int Puerto_Origen;
int Puerto_Remoto;
int Direccion_Origen;
int Direccion_Remota;
int RST;
Componentes_TCB *TCB;
bool Pasivo;
int Puerto_Modificar;
int Puerto_Inicio_Conexion;


};

Para enviar necesito utilizar la funcion sendto, pero está función envía un char*, asi que no se como hacer para enviarlo. ¿Hay alguna forma de convertir esa estructura en un char *?. ¿Podría declarar un Datos_Componenes_Conexion *dc y enviar dicho puntero?

Muchas graciasss Si alguien me pudiese mostrar un ejemplo se lo agradecería.

7
C/C++ / Ficheros//generador De Problemas
« en: Lunes 20 de Marzo de 2006, 22:19 »
Hola!
Tengo una duda, alguien sabe como hacer un generador de problemas que me devuelva un .txt ?
Si alguien tiene una funcion que me devuelva un .txt ya me valdría, independientemente  de que escriba en el fichero.
Gracias

Páginas: [1]