Zwei Unterschiedliche Ports für WIZnet

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Zwei Unterschiedliche Ports für WIZnet

      Hallo,

      nach gescheiterten DHCP Funktion, mach ich jetzt mit den nächsten Schritt weiter.
      Die Steuerung mit dem PC Software ist soweit fertig, nun möchte ich auch über Web Interface den AVR steuern.

      Dafür habe ich den Beispiel Webserver in mein Projekt integriert und muss aber den Port fest auf 80 haben, wobei der Port vom PC Software Variable bleiben soll.

      Jetzt habe ich da folgendes gemacht
      in der Hauptschleife habe ich den kompletten Term für den Webserver gelegt und da drunter den Term für die PC Software Steuerung.

      Leider wird immer mit Port 80 auf eine Verbindung gewartet, obwohl ich für das PC Teil den Port 2005 habe

      Wie kann ich das so machen, das zwei unterschiedliche Ports unabhängig voneinander arbeiten?


      DotMatrix_mit_webpage.txt
    • Eine HTTP Verbindung wird immer auf dem Port des Server eingeleitet.
      Hat der Server Port 8080, so muss der Client die Verbindung über <IP>:8080 aufbauen.
      Der Port, über welchen der Server die Daten an den Client sendet, wäre dann in deinem Beispiel der Port 2005, welchen du im Client als Antwortport vorgegeben hast.
      Dieser "Antwortport" spielt aber keine Rolle in der Betrachtung, da immer der Initiierungs Port angegeben wird. (normalerweise Port 80 bei HTTP)

      Du kannst am WIZ natürlich einen anderen Port als 80 angeben!

      Siehe hierzu auch: de.wikipedia.org/wiki/Transmission_Control_Protocol (Verbindungsaufbau)
      Code first, think later - Natural programmer :D
    • @pluto, ich denke du hast mich falsch verstanden oder ich habe falsch definiert.

      Mein absicht ist, wenn ich per Webbrowser mich verbinde, dann soll über Port80 laufen, also der Webserver Teil sol angesprochen werden.

      Und wenn ich mich per PC Software verbinde, dann soll das nicht Webserver Teil angesprochen werden.
      Spricht alle ports ausser 80.

      Und das ist mit deiner Methode nicht zu realisieren denke ich.
    • Da er nicht wissen kann wie Du ihn ansprechen wirst, listen er beides und reagiert dann auf das was ihn anspricht. So ist er zu beidem fähig ohne das verschiedene Programme gebrannt werden müssen und das sogar quasi gleichzeitig. z.B. der Computer sagt ihm was zu tun ist und mit dem Handy kann man sehen was Sache ist. Natürlich könnte man das auch ausschliessen in dem einfach der der sich als erstes meldet alle Sockets bekommt aber wozu? Wenn das http kein Zugang bekommen soll wäre doch immer noch eine Meldung "Das geht jetzt nicht" sinnvoller als sich "tot" zu stellen.
      "Spricht alle ports ausser 80" Wieviele soll der Winsock den nutzen? reicht 2005 nicht ? Gibt es einen Vorteil mehrere zu nehmen ?

      Ein Grund könnt ich mir vorstellen: Wenn es verschiedene Windows Programme werden, von denen eins nur begrenzte Möglichkeiten kriegen soll (odere völlig andere Daten z.b SeriellComInstuments) wäre eine anderer Port eine gute Möglichkeit

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pluto25 ()

    • Hi Katip,
      wo siehst du einen Unterschied der PC Verbindung und Webbrowser Verbindung?

      "Webbrowser" Verbindung sehe ich Port 80 HTTP TCP
      PC Verbindung wäre dann ?

      Du lässt genau einen Socket auf Port 80/TCP laufen für den Webbrowser.
      Einen anderen Sock kannst du z.B. auf Port 2005/UDP laufen lassen um Steuerbefehle vom PC zu empfangen.
      auf einem weiteren Soket, z.B. 2006/UDP, könntest du Informationen zum PC senden.

      DHCP führst du auf einem weiteren Sock aus.
      Das kann der WIZ problemlos.

      Nur mal zum Verständnis...
      Code first, think later - Natural programmer :D
    • UDP ist schneller. Beim streamen ein Vorteil, dort sind ein paar falsche Daten weniger problematisch als die Wartezeit auf ein neu versendetes Packet falls es falsch war. Bei Deiner Anwendung ist die Zeit nicht kritisch dafür sollten aber die Daten stimmen, daher würde ich bei TCP bleiben.

      katipefendi schrieb:

      Nun, dann muss ich bevor ich mich mit dem PC Software verbinde, erstmal 3 Verbindungen mit der HTTP aufbauen.
      Oder wie hast du dir das vorgestellt?
      Vermutlich unnötig aber zum Verständniss. Dein Programm fragt alle Sockets nacheinander ab. Wenn einer noch listen also keine Verbindung/Daten bekommen hat, wird nichts getan und der nächste abgefragt.