elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Sockets y concurrencia, duda básica en: 23 Mayo 2014, 19:25 pm
Muchas gracias, creo que me estás convenciendo y estoy pensando en como hacerlo de esa manera.
Veo que en tu código de ejemplo envías un struct. Pero en el receptor no hay structs. Entonces había pensado hacer lo mismo pero usando un determinado numero de bytes para cada cosa. 1byte para el identificador, otro byte para el numero de trama, etc que agrego delante del frame.
¿Si envío varios frames seguidos como se cuando termina y empieza otro. Supongo que no puedo estar buscando por todos los trozos donde está una cabecera...
Si envio 2 frames seguidos y en uno el otro lado al recibir, ¿recibe el final de uno y el principio de otro?
2  Programación / Programación C/C++ / Re: Sockets y concurrencia, duda básica en: 21 Mayo 2014, 18:03 pm
Probablemente UDP sea lo más correcto para sacar el máximo rendimiento. Pero teniendo en cuenta que cada frame habría que enviarlo en varios paquetes igual es mucho lio para reconstruirlos en el destino.
La verdad, es que dándote la razón, me gustaría hacer una prueba inicial con TCP a ver que rendimiento resulta.
Los datos a transferir serían bytes. En el destino busco renderizar la imagen RGB24 usando OpenGL. Entonces lo que quiero es reconstruir el array tal cual lo envío en bytes.
OniRGB888* textura es un puntero a una posición de memoria. textura+1 sería el siguiente pixel y cada pixel son 3 bytes (uno por color), por lo tanto, se enviarían 3 bytes cada vez que avanzo el puntero. (Creo no equivocarme).
Y, olvidándonos de momento del tema de los hilos. Aquí es donde no se como tengo que enviar este objeto. Se que el método send me devuelve los bytes enviados y tengo iterar hasta envíar el frame completo. ¿Como le paso al método send la posición de memoria de este objeto?¿Como le digo que vaya en bytes en lugar de 3 bytes?



¿Como puedo saber en el servidor que envía cuando el receptor ha terminado de recibir los datos?
3  Programación / Programación C/C++ / Sockets y concurrencia, duda básica en: 21 Mayo 2014, 13:51 pm
Buenos días y saludos a toda la gente del foro.

Estoy intentando desarrollar un programa en c++ para windows que se comunique con otro dispositivo (en este caso un móvil) para enviar un array de datos.
El tema es que esos datos representan una imágen RGB24. En el programa, por un lado tengo un hilo que genera esas imágenes en un objeto OniRGB888* textura a una velocidad de 15fps aproximadamente.
En otro hilo quiero coger el frame más nuevo y enviarlo por socket TCP con la frecuencia más rápida que sea posible.
En principio tengo varias dudas. No se ni cual es la mejor forma de enfocar el problema. Había pensado en pasar el array por valor a la función de envío de forma que se haga una copia del array en la pila que no destroce el hilo principal cuando escriba el nuevo frame, pero me parece un poco complicado.
Asi que para empezar me gustaría hacer una versión inicial de un solo hilo que genere el frame y luego lo envíe. No genere el siguiente hasta que termine el envío del primero.
textura es un array de una dimensión con una resolucion de 800x600. Es decir, su tamaño es 800x600x3= nº bytes. Como puedo envíar esto por socket y recibirlo en un programa java. Ya he enviado strings pero en este caso que se enviaría en varios datagramas no tengo ni idea de como hacerlo. A ver si me podeis echar una mano.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines