Thread Socket-Server, ich verstehe es nicht ganz: Perl-Server+C#-Client-> Bi-Direkt.-Verbi (15 answers)
Opened by Gast at 2007-02-20 14:14

no1gizmo
 2007-02-20 16:56
#37463 #37463
User since
2007-02-20
21 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,20.02.2007, 15:37]<$client> versucht solange vom socket zu lesen, bis ein ein \n empfangen wird oder die leitung unterbrochen wird (quasi TextReader.ReadLine in C#).[/quote]

Na das ist doch mal ne Erklärung! Kurz, bündig, verständlich (und mit Vergleich aus "meiner" Welt).

Quote
wenn dein protokol nicht zeilenweise aufgebaut ist, ist es geschickter, die länge der nachricht in die ersten 4 bytes zu packen und dann mit $socket->read zuerst die ersten 4 bytes der nachricht und dann die restlichen daten zu lesen. sonst kommst du immer in diesen blocked state...


->read(...) habe ich schonmal irgendwo gesehen, dann muss ich diese methode (bzw. wie sie genau funktioniert/Parameter) suchen. Was du meinst ist mir aber glaube ich klar. Danke.


Quote
außerdem solltest du mit IO::Select testen, ob daten auf dem socket vorhanden sind, bevor du anfängst zu lesen.


Ahha.... Select sagt mir soweit nicht mehr, als dass ich es schonmal in nem Tutorial gesehen habe, aber nagut, muss ich noch nachforschen.

Insgesamt bin ich wohl MSDN verwöhnt, bei Perl ist das schon Fuselkram, zumal alle Socket-musterlösung im Netz anders funktionieren (zu sein scheinen!?).\n\n

<!--EDIT|no1gizmo|1171983424-->

View full thread Socket-Server, ich verstehe es nicht ganz: Perl-Server+C#-Client-> Bi-Direkt.-Verbi