Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: TSocket - Online Spiel Kommunikation

  Alt 19. Mär 2012, 15:40
Wenn du bei TCP/IP sehr schnell hintereinander Daten sendest, dann stehen die Chancen gut, dass beim Empfänger alles in einem Datenpaket ankommt.
Wenn der Absender z.B. folgendes schickt:
Delphi-Quellcode:
ClientSocket1.Socket.SendText('HIT 120, 50');
for i := 1 to 100 do ; // ganz kleine Pause dazwischen
ClientSocket1.Socket.SendText('HIT 85, 60');
Dann wird beim Empfänger möglicherweise nur ein String mit dem Inhalt "HIT 120, 50HIT 85, 60" ankommen.
Wenn dein Empfänger nicht in der Lage ist die einzelnen Befehle sauber zu trennen, dann kann die Kommunikation nicht korrekt funktionieren.

Aphton hat ja geraten auf den Resultwert der Sendefunktion zu reagieren.
Das ist aber nicht das Problem.
Das Problem ist, dass TCP/IP ein Streamorientiert ist während deine Anwendung Messageorientiert arbeitet.

Code:
StelldireinfachvoreinTextwürdeohneLeerzeichenun
dSatzzeichenübertragenwerdenEinComputerhättedie
grösstenSchwierigkeitendamitzurechtzukommenWofä
ngteinWortoderBefehlanundwohörteraufGenaudasist
dasProblemwennmankeinrichtigesProtokollhatmitde
mdieeinzelnenBefehlegetrenntwerdenkönnen
Andreas
  Mit Zitat antworten Zitat