Frage

Ich entwickle ein Programm, das Bilder von einem Computer zum anderen (ohne Maus / Tastatureingabe ähnlich wie Remote-Unterstützung) sendet. Die beiden Computer I-Test verwenden, dies ist ein Windows XP-Computer und ein Windows Vista. Ich habe die stationäre XP Maschine direkt mit einem Router verbunden ist, und einen Laptop, die durch drahtlose verbunden ist.

Die Übertragung von XP auf Vista funktioniert super, ich bin in der Lage einen konstanten Fluss von Bildern zu erhalten, die auf Vista angezeigt. Allerdings, wenn ich es drehen und Bilder von Vista auf XP senden funktioniert es nicht. Ich habe auch eine lokale „kopieren“ versucht, das, ohne das Netzwerk erhalten einen Fluss der Bilder und das funktioniert auf Vista sowie XP. Es ist genau das gleiche Programm auf beiden Maschinen.

Ich glaube nicht, es wichtig ist, aber ich bin mit GDI + für die Bilder. Also habe ich auf dem Netzwerk eine JPG durch einen Stream senden und es auf der anderen Seite wieder aufzubauen.

My Network Message-Klasse ist NetMsg genannt. es besteht aus einem char* type und einem char* data. die Typen bestimmen, wie ich die Daten interpretieren, keine Probleme hier.
Nennen sie den Computer # 1 und # 2.
Wenn die Verbindung erstellt und ich markierte das Gebiet auf # 1, dass ich senden will:
001> # 1 sendet Typ RESIZE // das Fenster auf # 2 die gleiche Größe wie die Fläche bekommen ich auf # 1 | markiert 002> # 1 sendet Typ picture_data // dies ist das eigentliche Bilddaten
003> # 2 nach den beiden obigen Meldungen empfangen werden, sendet Typ REQUEST_MORE // # 2 will mehr Bilddaten
004> #go zu Schritt 1

Ich habe nicht einmal die Mühe gemacht, es zu debuggen, wenn Bilddaten von XP auf Vista zu senden, da es funktioniert gut, genau wie ich es will. Allerdings, wenn Vista auf XP sendet ich habe folgendes bemerkt:

  • Daten empfangen können tatsächlich zwei NetMsgs sein. Ich habe die Unterstützung für diese durch die Spaltung der Daten in mehrere NetMsgs
  • empfangenen Daten unvollständig sein kann, das heißt ich habe für mehr Daten warten. Ich habe die Unterstützung für diese durch eine NetMsg als unvollständige Kennzeichnung und den nächsten Datenübertragungs es abzuschließen. (Sowie eine Kombination aus dem ersten Schritt)

Das hat fast den Trick, weil ich ein paar Bilder bekam korrekt übertragen, aber dann ist es plötzlich gestoppt. Ich habe das nicht gründlich ausgetestet, damit ich weiß nicht, warum die Daten suddently gestoppt .. Aber:

Was ich nicht verstehe, ist, dass dies funktioniert gut, wenn von XP auf Vista zu senden, aber nicht umgekehrt. Was bin ich?

Lassen Sie mich wissen, wenn Sie Auszüge von Code benötigen, aber es ist ziemlich groß ... rund 500 Zeilen .. Ansonsten ich für bekannte Probleme suchen, wenn Daten von Vista auf XP zu senden.

Jede Hilfe und / oder Feedback zu schätzen!

War es hilfreich?

Lösung 3

Es wurde auf beiden Computern tatsächlich blockiert und beide wurden für den anderen zu reagieren warten.

Andere Tipps

Es ist schwierig, wirklich etwas zu sagen, mit Sicherheit. Allerdings würde ich empfehlen, dass Sie eine Testsuite für Ihr Programm schreiben und einen Testfall implementieren, die dieses spezielle Problem fängt. Dadurch wird es einfacher für Sie, den Fehler zu reproduzieren, und es ist oft sehr lehrreich, zu versuchen, einen minimalen Testfall zu erzeugen, die das Problem nachweisen können. Auch wenn Sie einen (vollautomatischen) Testfall haben, ist es auch einfacher, jemanden zu bitten um Hilfe.

Was Sie wirklich tun müssen, ist das Problem näher zu beschreiben. Es konnte 100 von Gründen, warum „es nicht funktioniert“.

Sind Sie grundsätzlich alle Daten wirklich an?

Versuchen Sie, nur ein paar Bytes zu senden, haben sie durchkommen?

Wenn nichts wird immer durch, versucht Wireshark ist Vista das Senden von Daten aus?

Ist XP es zu erhalten?

Keine Magie hier, Sie werden den Datenweg von Anfang bis Ende überprüfen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top