Noch'n kleines Projekt - WinTelex

Fachforen für Entwickler und Bastler
Antworten

damarco
Rank 3
Rank 3
Beiträge: 200
Registriert: Mi 20. Sep 2023, 16:31
Hauptanschluß: 371126

Noch'n kleines Projekt - WinTelex

#131

Beitrag: # 49190Beitrag damarco »

Ich glaube das liegt er auf meiner Seite es liegt nach ein Zeichen im Buffer was nicht abgeholt wird.

damarco
Rank 3
Rank 3
Beiträge: 200
Registriert: Mi 20. Sep 2023, 16:31
Hauptanschluß: 371126

Noch'n kleines Projekt - WinTelex

#132

Beitrag: # 49227Beitrag damarco »

Problem behoben und mir ist noch aufgefallen. Beim Aktivitätstimeout schließt du einfach den Socket. Es wäre schön wenn du vorher ein END senden würdest, weil die Verbindung sauber beendet wurde. Das führt auf meiner Seite zum reconnect, weil ich denke da da ist was schief gelaufen. Den Timeout kann man ja frei einstellen und ich kann auf meiner Seite nicht ahnen weshalb der Socket geschlossen wurde.
Benutzeravatar

Topic author
detlef
Rank 12
Rank 12
Beiträge: 4272
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Noch'n kleines Projekt - WinTelex

#133

Beitrag: # 49228Beitrag detlef »

Schaue ich mir an. Reconnect habe ich übrigens gar nicht implementiert.
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konf.-Dienst: 11160/11161, Rundsender: 11162/11163 , Baudot-Bilder: 11166, Chat-GPT: 11168
Mail-/Fax-Dienst: 11170/11171, News-Ticker: 11180/11181, hist. Ausk.: 40140, Wetter: 717171

damarco
Rank 3
Rank 3
Beiträge: 200
Registriert: Mi 20. Sep 2023, 16:31
Hauptanschluß: 371126

Noch'n kleines Projekt - WinTelex

#134

Beitrag: # 49231Beitrag damarco »

Vielleicht kann man über eine checkbox nachdenken, ich fand es jetzt ganz praktisch zu schauen was passiert wenn die Verbindung geschlossen wird.

damarco
Rank 3
Rank 3
Beiträge: 200
Registriert: Mi 20. Sep 2023, 16:31
Hauptanschluß: 371126

Noch'n kleines Projekt - WinTelex

#135

Beitrag: # 49300Beitrag damarco »

Hmm also wer sich über eine Wlan Verbindung über verlorene Zeichen Wundert das hat offenbar Ursachen im TCP/IP Stack. Es gibt zwar keine mindestens Größe der Payload, mir war aber mal so das man mindestens 64byte senden sollte. Die kleinen Pakete gegen augenscheinlich durch eine schlechte Wlan Verbindung verloren und können durch den TCP/IP Stack nicht gerettet werden.

Er unwahrscheinlich das bei dir Delef was faul ist, du musst jetzt auch nicht aktiv werden.

Es sei nur erwähnt das mit Wlan Pakete also Zeichen verloren gehen können und das ist am iTelex auch reproduzierbar.
Benutzeravatar

Topic author
detlef
Rank 12
Rank 12
Beiträge: 4272
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Noch'n kleines Projekt - WinTelex

#136

Beitrag: # 49301Beitrag detlef »

Bei mir läuft hier alles über LAN. WLAN nutze ich nur bei piTelex-Systemen und dort auch nur testweise.
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konf.-Dienst: 11160/11161, Rundsender: 11162/11163 , Baudot-Bilder: 11166, Chat-GPT: 11168
Mail-/Fax-Dienst: 11170/11171, News-Ticker: 11180/11181, hist. Ausk.: 40140, Wetter: 717171

damarco
Rank 3
Rank 3
Beiträge: 200
Registriert: Mi 20. Sep 2023, 16:31
Hauptanschluß: 371126

Noch'n kleines Projekt - WinTelex

#137

Beitrag: # 49302Beitrag damarco »

Nicht so ganz trivial das Problem, wenn man sich mal wieder mit TCP/IP beschäftigt :fiesg:

https://en.wikipedia.org/wiki/Nagle%27s_algorithm
https://learn.microsoft.com/en-us/previ ... cp-winsock

Werde mal die Sockoption TCP_NODELAY setzen und Probieren was passiert. Wie gesagt über Ethernet geht nichts verloren, passt man den remote Buffer an so das auch größere Pakete kommen minimiert sich das Problem.
Benutzeravatar

Topic author
detlef
Rank 12
Rank 12
Beiträge: 4272
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Noch'n kleines Projekt - WinTelex

#138

Beitrag: # 49305Beitrag detlef »

Hast du das mal mit Wireshark geprüft?
Das kann doch nicht sein, dass TCP/IP-Pakete einfach so verloren gehen. :suspect:

Auf welcher Plattform programmierst du denn da gerade?
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konf.-Dienst: 11160/11161, Rundsender: 11162/11163 , Baudot-Bilder: 11166, Chat-GPT: 11168
Mail-/Fax-Dienst: 11170/11171, News-Ticker: 11180/11181, hist. Ausk.: 40140, Wetter: 717171
Benutzeravatar

obrecht
Rank 8
Rank 8
Beiträge: 727
Registriert: Fr 26. Jun 2020, 18:53
Wohnort: Aachen
Hauptanschluß: 833539 fili d

Noch'n kleines Projekt - WinTelex

#139

Beitrag: # 49306Beitrag obrecht »

damarco hat geschrieben: Do 15. Mai 2025, 16:50 Hmm also wer sich über eine Wlan Verbindung über verlorene Zeichen Wundert das hat offenbar Ursachen im TCP/IP Stack. Die kleinen Pakete gegen augenscheinlich durch eine schlechte Wlan Verbindung verloren und können durch den TCP/IP Stack nicht gerettet werden.
Nichts ist unmöglich - Toyota....

Aber ich habe im Kopf, dass TCP eine Sicherungsschicht für IP ist und verlorene Pakete anhand der Sequence number identifiziert und erneut angefordert werden?
Und bei meinen sieben über WLAN verbundenen piTelex Installationen konnte ich bisher keine Zeichenverluste feststellen...
Viele Grüße,
Rolf

833533 rolfac d (T100S)  24/7
833538 obrac d  (FS220)  24/7
833539 fili d   (T100a)  24/7 
833540 rowo d   (T100/R) 24/7 
833541 obby d   (T37h)   24/7
833142 rolf d   (Lo15A)  24/7
83110 aachen d  (T68d)   24/7 (ETSt Aachen)

damarco
Rank 3
Rank 3
Beiträge: 200
Registriert: Mi 20. Sep 2023, 16:31
Hauptanschluß: 371126

Noch'n kleines Projekt - WinTelex

#140

Beitrag: # 49307Beitrag damarco »

Ja wenn ein TCP ACK feht wird das Paket nochmal angefordert. Ich suche schon eine weile nach der Ursache, selbst dem Code habe ich umgebaut von einst select() und jetzt epoll verwendet. Es ist ja was im Grundsatz das Paket geht auf OS Seite verloren und ob nun select oder epoll bedient am ende die syscalls.

Ich habe den Remote Buffer von winTlx mal auf 1 gestellt und es gibt einen unerwarteten Effekt. Erwartet habe ich das nun alle 150ms bei 50 Baud gesendet werden, die Ausgabe erfolgt sehr verzögert. Das Verhalten kommt von der Flusssteuerung vermute ich, erst wenn wieder der Buffer leer ist wird wieder gesendet. Es macht also Sinn dieses Wert auf sinnvolle Values zu begrenzen.

Ich habe aber schlechte Nachrichten, es scheint laut Wireshark keinen Übertragungsfehler zu geben und trotzdem fehlt am Ende was :wat:
Antworten

Zurück zu „Entwickler-Ecke“