Daten an einen Port senden und empfangen?
-
Für meine Diplomarbeit soll ich Daten einer PMD-Kamera über den IEEE1394 empfangen und auswerten können. Da ich die Kamera nicht immer anschliessen kann/will, möchte ich die Daten in eine Textdatei streamen und später an einen Port senden. Dann kann meine Hauptsoftware statt am Firewireanschluss an einem Software-Port die Daten abgreifen. Funktioniert das überhaupt so? Wie sende ich überhaupt Daten an einen Port? Über TCP/IP? Oder ein anderes Protokoll? Ich frage erstmal so allgemein, weil ich sowas noch nie gemacht habe.
-
Habe selber mal ein wenig gegoogelt und bin nun über afxsocket.h gestolpert. Wo bekomme ich darüber eine Dokumentation oder ein Tutorial?
-
CSocket:
http://msdn.microsoft.com/library/en-us/vclib/html/_MFC_CSocket.aspAndere Beispiele findest Du z.B. auf Codeproject...
-
Vielen Dank! Immerhin habe ich einen Socket auf listening schalten können, juhu Bloss wie man jetzt Bytes oder Zahlen aus einer Textdatei streamed muss ich noch herausfinden...
-
Das streamen scheint schon fast zu klappen. Allerdings verstehe ich nicht, wieso ich ein Zeichen aus der Datei lese, aber in der Variablen "data" sind 9 Zeichen enthalten:
CFile myFile; myFile.Open("raw.txt", CFile::modeRead); char* data = new char[1]; for (int i=0;i<8;i++) { myFile.Read(data, 1); m_lb1.AddString(data); //Testausgabe an ListBox1 otherSocket.Send(data, 1); } myFile.Close(); delete data;
Die Textdatei besteht nur aus "1234567812345678123...", als Ausgabe gibt er mir aber
1<7seltsameSonderzeichen>1
2<7seltsameSonderzeichen>1
3<7seltsameSonderzeichen>1
usw...Verstehe ich den Typ char falsch? Der ist doch nur mit einem Byte definiert, wie kann er dann 9 Byte zurückgeben?
-
JPSelter schrieb:
char* data = new char[1];
sieht so aus als würde 'AddString' ein string-ende '\0' brauchen.
probier's mal so:char data[] = {0,0};
-
OK, jetzt siehts gut aus