• Hallo,
    ich suche seit einigen Tagen nach einer Möglichkeit, um bei einer TCP Verbindung ein "Feedback" - sprich einen String - vom Server zu Client zurück zu senden.
    Kann mir da jemand weiter helfen?

    Danke

    • Offizieller Beitrag

    - Verbindung aufbauen
    - Client: TCPSend(Msg) ; wenn darauf eine Antwort erwartet wird, wechseln zu: TCPRecv()
    - Server: TCPRecv() ; je nach erhaltener Nachricht reagieren und Nachricht senden: TCPSend(Msg)
    Natürlich in entsprechenden Schleifen, unbedingt einen "Notausgang" integrieren, falls Verbindungsabbruch entsteht und du nicht in eine Endlosschleife läufst.
    Bastele dir am Besten ein eigenes Protokoll, damit du beim Senden ankündigst, was du sendest und welche Reaktion erwartet wird, z.B.
    LEN-38;EXPECT-ANSWER;MSG-Die Nachricht

  • So müsste ja eigentlich "Feedback-MessageGesendet" an den Client zurückgesendet werden... @BugFix

  • Hi,
    hast du dir mal die hilfe zu TCPSend() angeschaut? Und dessen Parameter?

  • So. Ich habe das jz nochmal überarbeitet, aber ich komme immer noch nicht weiter :( @BugFix & @Andy

  • Keine Ahnung was du da machst. Wieso hast du in beiden Scripten Server und Client code? Für eine einfache Kommunikation reicht es völlig wenn es einen Server gibt und der bzw. die Clients sich mit diesem verbinden. Das was du hier versuchst ist dann schon eher P2P und wird in der Praxis nicht funktionieren wenn du nicht auf allen beteiligten Geräten statische IPs verwendest. Bei dynamischer IP Zuweisung bräuchtest du für sowas noch eine zentrale Stelle die dir die aktuellen IP Adressen verrät.

    Ohne deine Scripte nun besonders genau angeschaut zu haben könnte ich mir auch vorstellen, dass du ein Timing Problem hast. Sprich dein Client sendet etwas bevor der Server überhaupt bereit ist Antworten anzunehmen/auszuwerten.

    Fang nochmal ganz von vorne an und bau dir eine kleine GUI für den Server und den Client über die du den Verbindungsaufbau und das Senden manuell auslösen kannst. (kleiner chat client, welcher automatische antworten vom server bekommt)
    So kannst du deinen code in beiden Scripten prüfen und besser verstehen was da eigentlich passiert.

    Achja und du solltest am Server Computer prüfen ob evtl. eine Firewall oder Antivirenlösung dein Serverscript blockiert.


    Hier nochmal der ungefähre Aufbau der Scripte:


  • Achja und ganz wichtig noch... sorge dafür, dass die sockets beim Verbindungsende/abbruch geschlossen werden tcpcloseSocket() und bei Programmende ein tcpshutdown(). Andernfalls kann es passieren, dass deine verwendeten Ports nicht mehr nutzbar sind und weitere Tests dadurch scheitern.