Virtual Serial Port zu TCP/IP



  • Hallo,

    ich habe vor ein Programm zu schreiben, dass virtuelle COM-Ports erstellt und ihnen eine IP zuweist.
    Kennt jemand gute Tutorials die mir dabei helfen könnten?

    Momentan bin ich soweit, dass ich mit den Microsoft Beispiel eine virtuelle COM Schnittstelle erzeugt habe, aber jetzt weiß ich irgendwie nicht weiter. Könnt ihr mir bitte helfen?

    LG



  • Was genau erwartest du dir jetzt?



  • Ja ich weiß... es ist etwas unglücklich formuliert. 😃
    Na ja, ich habe momentan das Problem, dass ich nicht weiß, wie ich am besten vorgehen muss.

    Momentan habe ich die Idee eine Virtuelle Schnittstelle zu erstellen. Dann schreibe ich ein Programm, dass diese Schnittstelle ständig prüft, ob Daten kommen. Wenn ja, dann soll das Programm es über TCP/IP weiterleiten und umgekehrt.

    Funktioniert das so wie ich es mir vorstelle oder gibt es einen besseren Ansatz?

    Vielen Dank für eure Hilfe!!!

    LG



  • Was muss man eigentlich machen, um bei solchen "Fragen" gelassen zu bleiben?



  • Was muss man eigentlich machen, um bei solch einer "Antwort" gelassen zu bleiben? 😡

    Tut mir leid, wenn meine Fragen zu blöd sind. Fakt ist für mich, dass ich soetwas noch nie gemacht und mir hier etwas Hilfe erwartet habe. Da kann ich auf solche Antworte gerne verzichten!!!



  • Zeig mal was du bisher hast und beschreibe was daran nicht geht?

    Du kannst nicht erwarten dass Dir hier die Lösung auf dem goldenen Tablett serviert wird.



  • JimK schrieb:

    Momentan bin ich soweit, dass ich mit den Microsoft Beispiel eine virtuelle COM Schnittstelle erzeugt habe, aber jetzt weiß ich irgendwie nicht weiter. Könnt ihr mir bitte helfen?

    Zunächst solltest du einen Socket in den Listen-Mode schalten. Und wenn sich ein entfernter Teilnehmer connected, auf dem dann entstehenden Verbindungssocket bidirektional die Daten zwischen virtueller RS232 und der TCP-Verbindung hin-und-herschaufeln. Für jede der beiden Richtungen bietet sich ein separater Thread an.

    Sollte an sich nicht so schwierig sein. Ein bisschen kniffliger wird es, wenn auch die Hardware-Flusskontrolle bzw. andere Signalleitungen nachgebildet werden sollen. Das bekommen sogar kommerziell erhältliche, USB nach RS232-Konverter, oft nicht hin.



  • Ja sorry... Die Antwort von decimad hat mich nur so wütend gemacht. Aber vielleicht habe ich mich auch falsch ausgedrückt.

    Also eigentlich habe ich vorerst nur theoretische Fragen zum Vorgehen, da ich noch nicht ganz verstehe wie ich die Kommunikation zwischen COM-Port und TCP realisieren muss. Deswegen habe ich auch noch keinen Code.

    Meine Frage ist eigentlich, ob schon jemanden damit Erfahrung hat und mir Tipps geben kann, wie ich am besten vorgehe.



  • Danke Z!!!

    Ich wusste nämlich nicht, wie ich es erklären sollte. So ähnlich habe ich es mir gedacht, wusste aber nicht, ob ich es irgendwie direkt in den Treiber für die virtuelle COM integrieren muss.

    Dann werde ich mal starten und mich wieder melden, wenn ich wieder Probleme habe. ^^

    Danke nochmal



  • JimK schrieb:

    Meine Frage ist eigentlich, ob schon jemanden damit Erfahrung hat und mir Tipps geben kann, wie ich am besten vorgehe.

    RS232 und TCP/IP orientieren sich beide am Konzept des 8-Bit-Datenstroms. Das ist ja das Schöne.

    simplifizierter Pseudocode ...

    char buff[puffergröße];
    
    // Thread 1
    while (verbindung_steht)
    {
       int empfangene_anzahl = tcp_read (buff, puffergröße);
       virtual_com_write (buff, empfangene_anzahl);  
    }
    
    // Thread 2
    while (verbindung_steht)
    {
       int empfangene_anzahl = virtual_com_read (buff, puffergröße);
       tcp_write (buff, empfangene_anzahl);  
    }
    

    ^^ 2 Threads, da die r/w-Funktionen im Normalfall auch blockieren können (keine Daten da, interner Puffer voll, usw).



  • JimK schrieb:

    So ähnlich habe ich es mir gedacht, wusste aber nicht, ob ich es irgendwie direkt in den Treiber für die virtuelle COM integrieren muss.

    Erm.
    Wie wärs wenn du dir diesen Treiber ansiehst?

    Entweder es fehlt dir noch SEHR an den nötigen Programmierkenntnissen, oder du bist zu unselbständig. Oder beides.

    => Guck dir den Code des von dir "verwendeten" Beispiels an. Und dann guck dir die Sockets API an und ein paar Beispiele dazu an (die du zu Hauf über Google findest).
    Und dann setzt dich auf deine 4 Buchstaben und fang an es zu implementieren.
    Wenn du dabei dann etwas bestimmtes nicht hinbekommst, dann frag einfach nochmal nach.


Anmelden zum Antworten