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.asp

    Andere 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 🙂


Log in to reply