Moin und

im Forum!
IAhh hat folgendes geschrieben: |
| Bei inzischen zwei speziellen Kunden passiert es nun von Zeit zu Zeit, dass die Nachrichten die der Client über den TClientSocket absetzt einfach verschwinden. D.H. der Socket sagt er ist connected, er empfängt Nachrichten vom Server und er tut beim senden so als würde er senden. Beim Server kommt aber nix an! Das geht dann ungehindert so weiter! |
Wenn kein OnError-Ereignis ausgelöst wird, dann liegt es auch nicht an der WSA bzw. den Socket-Komponenten; leider liegt der Fehler meistens in der Anwendung, vor allem wenn man im non-blocking-mode der Sockets arbeitet...
IAhh hat folgendes geschrieben: |
| Das größte Dilemma ist, dass der Client zu nächst nicht merkt, dass der nix sendet... |
Was heißt das denn?

Merkt er es nun (-> OnError) oder nicht?

Dir ist aber sicherlich bekannt, dass TCP-Verbindungen erst nach einem Timeout Verbindungsabbrüche melden, oder?
IAhh hat folgendes geschrieben: |
| Gibt es bekannte grundsätzliche Probleme in den beteiligten Delphi-Komponenten? |
Einziger mir bekannter "Bug" ist, dass das OnWrite-Ereignis nur genau einmal nach dem Connect eintritt, statt immer dann, wenn der Socket bereit für weitere Sendedaten ist; aber das benutzt sowieso fast keiner...
Sonst funktionieren die Sockets eigentlich ganz genau so, wie von den Entwicklern beabsichtigt; allerdings sind die im non-blocking-mode nicht ganz soo einfach handzuhaben, wie das auf den ersten Blick aussieht.

Aber hier kann man ohne den Code zu sehen keine weiteren Tipps geben.
IAhh hat folgendes geschrieben: |
| Kann sowas an bestimmten Netzwerkproblemen liegen? (Die anderen Systeme in den Netzen haben laut Kundenaussage keine Probleme) |
Da es sich um TCP-Verbindungen handelt, wird jeder Fehler in der Verbindung gemeldet, ganz sicher!

Wie du allerdings damit umgehst bzw. wie du mit den Timeout-Verzögerungen, die evtl. auftreten, klarkommst, das ist eine andere Frage.
IAhh hat folgendes geschrieben: |
| Hat jemand vielleicht schonmal so ein Problem gehabt und gelöst? |
Die meisten Probleme liegen in der Signalisierung auf der Anwendungsebene, sprich die Ereignisse und die Gründe für das Eintreten dieser sind den Programmierern häufig nicht genau genug "bekannt"...
Da die Sockets recht nahe an der WSA gebaut sind und du TCP einsetzt, sehe ich eigentlich kaum Grund, das "Netzwerk" oder die Betriebssystemanbindung in Zweifel zu ziehen.
Fazit: Schau noch mal besser ganz genau deine Anwendung durch.

Sorry, aber das ist ernst gemeint.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.