Domanda

Sto sviluppando un programma che invia le immagini da un computer ad un altro (simile alla teleassistenza, senza input da mouse / tastiera). I due computer che uso per testare questo sono una macchina Windows XP e Windows Vista uno. Ho la macchina XP stazionaria direttamente collegato ad un router, e un computer portatile che è collegato tramite wireless.

La trasmissione da XP a Vista funziona alla grande, io sono in grado di ottenere un flusso costante di immagini che vengono visualizzati su Vista. Tuttavia, quando ho capovolgere e inviare immagini da Vista a XP non funziona. Ho anche provato una "copia" locale, cioè senza la rete di ottenere un flusso di immagini e questo funziona su Vista e XP. E 'esattamente lo stesso programma su entrambe le macchine.

non credo sia importante, ma io sto usando GDI + per le immagini. Quindi mando un .jpg attraverso un flusso sulla rete e ricostruirlo sul lato opposto.

La mia rete di classe messaggio è chiamato NetMsg. Si compone di un char* type e char* data. i tipi determinano come interpreto i dati, nessun problema qui.
Chiamiamo il computer # 1 e # 2.
Quando si crea il collegamento e mi ha segnato l'area sulla # 1 che voglio inviare:
001> # 1 invia tipo RIDIMENSIONA // per ottenere la finestra sul # 2 della stessa dimensione come l'area ho segnato il 1 #
002> # 1 invia digitare PICTURE_DATA // questo è il vero e proprio imagedata
003> # 2 dopo hanno ricevuto i due messaggi di cui sopra, manda tipo REQUEST_MORE // # 2 vuole di più imagedata
004> #go al punto 1

Non ho nemmeno preso la briga di eseguire il debug per l'invio di dati immagine da XP a Vista, dal momento che funziona benissimo, esattamente come lo voglio. Tuttavia quando Vista manda a XP ho notato quanto segue:

  • I dati ricevuti può effettivamente essere due NetMsgs. Ho il supporto per questo suddividendo i dati in diversi NetMsgs
  • I dati ricevuti possono essere incompleti, cioè devo aspettare per altri dati. Ho il supporto per questo tracciato con una NetMsg come incompleto e sul prossimo datatransmission completarlo. (Così come una combinazione del primo stadio)

Questa quasi ha fatto il trucco perché ho avuto alcune immagini trasferite correttamente, ma poi improvvisamente fermato. Non ho il debug questo fondo in modo non so il motivo per cui i dati improvvisamente smesso .. Tuttavia:

Quello che non capisco è che questa grande opera per l'invio da XP a Vista, ma non il contrario. Che cosa mi manca?

Non vorrei sapere se avete bisogno di estratti di codice, tuttavia, è abbastanza enorme ... circa 500 righe .. altrimenti Cerco problemi noti durante l'invio di dati da Vista a XP.

Tutti gli aiuto e / o feedback apprezzato!

È stato utile?

Soluzione 3

In realtà è stato il blocco su entrambi i computer ed entrambi erano in attesa per l'altro a rispondere.

Altri suggerimenti

E 'difficile dire davvero nulla con certezza. Tuttavia, vorrei suggerire che si scrive una suite di test per il vostro programma e implementare un banco di prova che cattura questo particolare problema. Questo renderà più facile per voi di riprodurre il fallimento, ed è spesso molto istruttivo cercare di produrre un banco di prova minima che può dimostrare il problema. Inoltre, quando si ha un (completamente automatico) banco di prova, è anche più facile chiedere a qualcun altro aiuto.

Quello che si ha realmente bisogno di fare è descrivere il problema in modo più dettagliato. Ci potrebbero essere 100 di motivi per cui "non funziona".

State ottenendo i dati attraverso?

Provare a inviare pochi byte, ottengono attraverso?

Se non sta ottenendo attraverso, provare a utilizzare Wireshark, è Vista inviando i dati fuori?

XP sta ricevendo esso?

Niente magia qui, si dovrà controllare il percorso dei dati dall'inizio alla fine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top