Net-srac Geschrieben 9. April 2002 Geschrieben 9. April 2002 Ich hab eine Frage zu den Socketfunktionen send() und recv(). Die erste Version meines Programmes hat mit Standardein- und Ausgabe auf dem Socket gearbeitet. Also print und <>. Nun ist es ja hier so, das ein '\n' am ende der zu sendenden Zeile dafür sorgt, dass der Buffer geleert wird, und die Zeile auf den Socket gestellt wird. <> wartet an der anderen Seite so lange bis etwas auf das Socket kommt. So hab ich eine einwandfreie kommunikation zwischen client und Server hinbekommen, da immer einer auf den anderen gewartet hat, um diese Zeilen später auszuwerten. Nun will ich Dateien übertragen. Also muß ich meinen Socket auf binmode schalten. Nun ist jetzt aber '\n' bei meinen Befehlen, die übertragen werden nutzlos geworden. d.H. es wird wieder gebuffert und gesendet wenn der Buffer voll ist. Lange Rede kurzer Sinn, hier meine Fragen. 1. gibt es eine möglichkeit vom binmode wieder in einen normalen modus zu schalten? 2. wie erreiche ich denn, bei send und recv, dass nichts gebuffert, sondern alles sofort beim aufruf gesendet wird. Ich habe header ähnlich dem: "SAVEFILE§$file§$sizeoffile§$sessionID§" den ich auf der anderen Seite auswerten muß bevor entschieden wird was as nächstes gemacht wird. Somit bräuchte ich immer eine kommunikation 1.client ->server if then.... 2.server->client if then... 3.client-> server if then.. und so weiter. ich hoffe ihr habt eine Lösung. Danke für die Mühen. )
root@localhost Geschrieben 9. April 2002 Geschrieben 9. April 2002 hallo wenn du IO::Socket benutzt kann man das (oder heißt das "den") Socket anweisen den Puffer automatisch zu leeren: $socket_handle->autoflush(1); bzw. $client->autoflush(1); vielleicht hilfts ja bis denn
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden