Datenverlust

Hallo,

ich hoffe hier kann mir einer weiterhelfen. Mit meinem Latein bin ich am ende und habe keine Ahnung woran das liegen koennte.

Ich habe eine Server / Client Anwendung selber programmiert. Wenn ich den Server und den Clienten auf meinem Rechner starte und beim Clienten die IP 127.0.0.1 eingebe, funktioniert alles tadellos.
Nun wollte ich das uebers Internet ausprobieren. Ich schickte einer Bekannten den Clienten. Sie startet ihn und gab meine aktuelle IP ein. Der Server den ich überwachte erhielt den benutzernamen und das passwort.
Der Server las daraufhin aus einer Datenbank die daten des Benutzers aus und schrieb sie in ein temp. File. Dieses wird dann geöffnet und die daten gesendet!
Zuerst wird die Filegroesse gesendet ( Start:File:1560 )
Danach werden die Daten gesendet (File:smiley:ata:xyz)
Zum Schluss wird dann das ende des Transfers gesendet ( File:End)

Der Client empfängt die Daten und schreibt sie wiederrum in ein Temp. File. Am Ende vergleicht er die Groesse der Datei mit der Groesse die unter start gesendet wurde.

Der Server zeigt an das alles daten erfolgreich gesendet wurden und es kein Fehler auftrat!
Beim Clienten kommen jedoch nur 1360 Bytes an, statt den 1560!

Weiss jemand woran das liegen kann, oder wo die daten verloren gehen?
Es fehlt jedesmal die selbige Zeichenfolge.
das sich die daten überschlagen und zusammengehaengend gesendet werden, wird abgefragt , da ich immer am ende ein prüfzeichen sende und dieses dann abfrage. Also kann ich das ausschliessen das es daran liegt.
Der client und der server kommunizieren auf port 12345. Dieser ist auch freigeschalten auf beiden rechnern!
Das ganze kommuniziert auf dem tcp/ip protokoll.

So nun noch ein paar daten:

Server :
OS W2K Proffesional ( ohne firewall, DSL)
Client:
OS WinXP, Port freigeschalten. Der rechner ist aber hinter einem Router!

Weiss jemand rat?

VLG Alex

Moin

Der Server zeigt an das alles daten erfolgreich gesendet
wurden und es kein Fehler auftrat!

Machst du ein flush der Verbindung vor dem close ?

Beim Clienten kommen jedoch nur 1360 Bytes an, statt den 1560!

Bist du sicher unter TCP/IP und nicht zufälligerweise unter UDP/IP ?

Es fehlt jedesmal die selbige Zeichenfolge.

Aus der Mitte, Anfang, Ende,… ?

cu

Moin

Hallo :smile:

Der Server zeigt an das alles daten erfolgreich gesendet
wurden und es kein Fehler auftrat!

Machst du ein flush der Verbindung vor dem close ?

Was meinst du denn mit flush? Ich schicke ihm die daten, hab cerschiedene Groesse blocks versucht. als mal 200 byte, aber auch auch mal alles mit einem schwung. Jedesmal fehlen die selbigen daten.
es kommen nach den fehlenden daten noch ca weiter 10 zeichenfolgenden an!

Beim Clienten kommen jedoch nur 1360 Bytes an, statt den 1560!

Bist du sicher unter TCP/IP und nicht zufälligerweise unter
UDP/IP ?

Ganz sicher. es steht TCP /IP da.

Es fehlt jedesmal die selbige Zeichenfolge.

Aus der Mitte, Anfang, Ende,… ?

cu

Ciao

Moin

Machst du ein flush der Verbindung vor dem close ?

Was meinst du denn mit flush?

In welcher Sprache programierst du ?

cu

unter vb und da nutze ich das winsock steuerlement zum senden der daten :smile:
Ein Connect mit dem anderen Rechner besteht

Ciao

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]