Afroklaus hat geschrieben:habe das problem das ich eine unbekannte anzahl von byte einlesen und weiterleiten muss!!
Hi Afro!
Um das klar zu stellen. Ich habe es nicht ausprobiert, aber vielleicht verhält sich diese Thematik so ähnlich wie das Lesen aus STDIN.
Wenn Ja, dann wird "socket.recv(buffsize)" so lange blockieren, bis der Buffer gefüllt ist.
Also, entweder du kannst die Gegenseite dazu bewegen, immer nur ein Vielfaches von "buffsize" (=1024) zu versenden oder du kannst immer nur ein einzelnes Byte empfangen und prüfen, ob du den gesamten, erwarteten Datenstrom empfangen hast.
Ach so.

Das wird dir aber auch nicht viel bringen, wenn du mit dem Sender kein Signal zum Beenden der Kommunikation ausgemacht hast.
Andere Variante. Finde am Anfang heraus, wie viele Bytes du insgesamt zu empfangen hast. Dann kannst du dich darauf einstellen und bei erreichen der Gesamtdatenmenge die Kommunikation abbrechen.
Anderer Vorschlag: Wenn du irgendeinen Einfluss darauf hast --> Verwende eine andere Art der Kommunikation. Irgendein höheres Protokoll wie XMLRPC oder zumindest wie von Leonidas vorgeschlagen: Asyncore. Wenn nicht, dann könnte dir "select" evt. weiter helfen.
mfg
Gerold
