Hey, ich versuche mich grad Firmenintern an einem STM32F4. Habe meinen Programmcode jetzt soweit, dass ich ein SYN Segment schicke. Um zu sehen, ob etwas ankommt habe ich zugleich ein LabVIEW VI erstellt, welches einfach einen Listener erstellt. Falls am gegebenen Port eine Anfrage ankommt lässt dieses eine LED aufleuchten. Mein Problem ist nun, dass sich nichts tut. Das VI erstellt einen Listener und wartet dann immer. Der Programmcode gibt in den Funktionen die richtigen Rückgabewerte aus bei den entsprechenden Funktionen. Wenn ich das SYN in eine unendliche WhileSchleife setze und pinge, so wird ein Ping gesendet und der Controller antwortet mit seinem reply. Hab auch schon Patch- wie auch Crosskabel probiert. Hat jemand noch eine Idee woran es liegen könnte bzw was ich noch versuchen könnte? Ich hoffe ich habe jetzt nichts vergessen. Danke für eure Hilfe
Hallo, Du bist Dir schon bewußt, daß SYN und LISTENER Begriffe sind, die zu TCP gehören. Das hat mit Ethernet erstmal gar nichts zu tun. (Siehe auch OSI-Modell: https://de.wikipedia.org/wiki/Internetprotokollfamilie#TCP.2FIP-Referenzmodell). Also wo drückt der Schuh? Was funktioniert? Was funktioniert nicht? -Holger
Hey, ja die Verbindung soll über TCP/IP stattfinden. Sollte vll noch dazu sagen, dass ich kein DHCP nutzen kann. Ich liste hier mal mein vorgehen auf. - initialisieren TCP Stack - Ethernet initialisieren - Netzwerkparameter konfigurieren (da kein DHCP) - TCP Connection ( = SYN Segment) "Der Schuh drückt" jetzt in der Richtung, dass anscheinend nichts ankommt.
Dave schrieb: > Hey, > > ja die Verbindung soll über TCP/IP stattfinden. > Sollte vll noch dazu sagen, dass ich kein DHCP nutzen kann. > > Ich liste hier mal mein vorgehen auf. > > - initialisieren TCP Stack > - Ethernet initialisieren > - Netzwerkparameter konfigurieren (da kein DHCP) > - TCP Connection ( = SYN Segment) > Die Rückgabewerte der ganzen Funktionen passen. Die Frage ist jetzt wo der "Fehler" noch liegen könnte. Oder habe ich etwas nicht beachtet und merke es nicht? Der Schuh drückt jetzt in der Richtung, dass anscheinend nichts ankommt.
Hey, Wireshark sagt mir das Selbe. SYN wird gesendet an die richtige IP. Reply wird zurückgesendet
Moin, und wo drückt dir der Schuh? Viele Sachen handelt dein TCP/IP Stack von selbst, du musst dich nicht darum kümmern. Was passiert denn, wenn du Daten schickst? LG Jan
naja ich habe ja ein LabVIEW VI erstellt, welches eine Sequenz abläuft Anfangs wird eine LED auf false gestellt, im 2. Abschnitt wird TCP initialisiert und wartet auf eine Anfrage, wenn die anfrage kommt geht's in die 3. Sequenz und schaltet als Beleg, dass was kam das LED ein. Aber im 2. Abschnitt wird nur ein Listener erstellt und dann wird so lange auf die anfrage gewartet bis der timeout stattfindet. Also wird die Anfrage nicht erkannt oder?
Ein SYN zu senden reicht nicht aus, nach dem Erhalt des SYN-ACK musst du wieder ein ACK zum Server senden. Siehe http://de.wikipedia.org/wiki/Transmission_Control_Protocol, Abschnitt 'Verbindungsaufbau'. Aber TCP zu Fuss ist eine Aufgabe die ich mir nicht antun würde, dafür gibt es Minimalstacks wie µIP oder lwIP. Für 'richtiges' TCP muss die ganze State Machine richtig implementiert werden, sonst wird das nie stabil laufen und die Reset Taste wird der wichtigste Button an deiner Kiste.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.