Pregunta

Estoy desarrollando un programa que envía imágenes desde un ordenador a otro (similar a la asistencia remota sin la entrada del ratón / teclado). Los dos equipos que utilizo para probar esto son una máquina Windows XP y Windows Vista uno. Tengo la máquina XP estacionaria directamente conectado a un router, y un ordenador portátil que se conecta a través inalámbrica.

La transmisión de XP a Vista funciona muy bien, yo soy capaz de conseguir un flujo constante de imágenes que se muestran en Vista. Sin embargo, cuando doy la vuelta y enviar imágenes de Vista a XP no funciona. También probé una "copia" local, es decir, sin la red obtener un flujo de imágenes y esto funciona en Vista, así como XP. Es el mismo programa en ambas máquinas.

No creo que importe, pero estoy usando GDI + para las imágenes. Así que enviar un .jpg través de una corriente en la red y reconstruirlo en el otro lado.

Mi clase de mensaje de red se llama NetMsg. que consiste en una char* type y una char* data. los tipos determinan cómo interpretar los datos, no hay problemas aquí.
Vamos a llamar a la computadoras # 1 y # 2.
Cuando se crea la conexión y que marcó la zona en # 1 que quiero enviar:
001> # 1 envía TAMAÑO tipo // para obtener la ventana en el # 2 del mismo tamaño que la zona que he marcado en # 1 | 002> # 1 envía escribir PICTURE_DATA // esta es la real imagedata
003> # 2 después de recibido los dos mensajes anteriores, envía tipo REQUEST_MORE // # 2 quiere más imagedata
004> #go al paso 1

No he molestado para depurarlo al enviar datos de imagen de XP a Vista, ya que funciona muy bien, exactamente como lo quiero. Sin embargo cuando Vista a XP envía Me he dado cuenta lo siguiente:

  • Los datos recibidos en realidad puede ser de dos NetMsgs. Tengo apoyo a esta dividiendo los datos en varios NetMsgs
  • Los datos recibidos pueden ser incompletos, es decir que tengo que esperar para más datos. Tengo apoyo a esta marcando un NetMsg como incompleta y en la siguiente datatransmission completarlo. (Así como una combinación de la primera etapa)

Esto casi hizo el truco porque tengo algunas imágenes transferidas correctamente, sin embargo luego de repente se detuvo. No he depurado esto a fondo, así que no sé por qué los datos se detuvieron suddently .. Sin embargo:

Lo que no entiendo es que esto funciona muy bien cuando se envía de XP a Vista, pero no al revés. ¿Qué me falta?

No quiero saber si usted necesita extractos de código, sin embargo, es bastante grandes ... aproximadamente 500 filas .. De lo contrario, estoy buscando problemas conocidos cuando se envían datos de Vista a XP.

Cualquier ayuda y / o retroalimentación apreciados!

¿Fue útil?

Solución 3

En realidad, fue el bloqueo en ambos equipos y ambos estaban esperando a que el otro responde.

Otros consejos

Es difícil decir realmente nada con certeza. Sin embargo, me gustaría sugerir fuertemente que usted escribe un conjunto de pruebas para su programa y poner en práctica un caso de prueba que atrapa este problema en particular. Esto hará que sea más fácil para que usted pueda reproducir el error, y que a menudo es muy instructivo para tratar de producir un caso de prueba mínima que puede demostrar el problema. Además, cuando se tiene un caso de prueba (totalmente automático), también es más fácil que pedir que alguien en busca de ayuda.

Lo que realmente necesita hacer es describir el problema con más detalle. Podría haber 100 de las razones por las que "no está funcionando".

¿Está recibiendo datos a través de?

Trate de enviar a pocos bytes, hacen que consiguen a través?

Si no está llegando, trate de usar Wireshark, es el envío de los datos a cabo Vista?

¿Está recibiendo XP?

Aquí no hay magia, que tendrá que comprobar la ruta de datos de principio a fin.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top