AW: Python-Client

Ev. Konsistorium eksol at t-online.de
Di Jun 8 15:50:51 CEST 1999


Sibylle Koczian schrieb:
> 
> Liebe Liste, lieber Herr Hoeppner,
> 
> zwei Fragen zu der Client-Basisklasse:
> 
> 1. Die Abfrage nach "AVANTI:EOR" setzt voraus, daß diese Zeichenkette mit
> anschliessendem Zeilenvorschub immer das Ende eines vom Server geschickten
> Pakets bildet und dass sie selbst nie beim Senden bzw. Empfang zerstueckelt
> wird. Kann man diese Annahmen beim Schreiben beliebiger Clients
> vertrauensvoll so uebernehmen? (Bisher habe ich "AVANTI:EOR" immer in der
> gesamten bis dahin empfangenen Antwort gesucht, und die kann natuerlich
> sehr lang sein.)

Das ist m.E. so nicht ganz richtig:
while 1:
	answer = answer + cl.recv(1024)
	if answer[-11:] == "AVANTI:EOR\n":
		break
Hier ist der Trick ein sogenanntes Slicing, vom gesamten String werden
immer die letzten 11 Zeichen genommen, und selbst wenn cl.recv()
zunaechst die end-of-request-Meldung teilen wuerde, kaemme mit dem
naechsten recv der Rest ans Ende und dann nichts mehr und die Routine
waere erfuellt. Von daher sollte das Verfahren sicher sein.


> 2. Das letzte Zeichen _vor_ dem "AVANTI:EOR" wird abgeschnitten. Dann muss
> aber der Auftrag immer so formuliert sein, dass der Server zuletzt noch
> einen Zeichenvorschub schickt - sollte vielleicht in der Beschreibung
> explizit erwaehnt werden. Basisklassen sind ja eigentlich dazu da, dass man
> die Implementationsdetails _nicht_ kennen muss.

answer = answer[:-11]
if answer[-1:] == "\n":
	answer = answer[:-1]

> Noch was: nach dem Aerger, den ich mit meinen Delphi-Clients gerade habe,
> bin ich dabei, meinen kleinen Client zum Testen beliebiger Jobs auf Python
> umzuschreiben. Waere das vielleicht etwas, was ich allgemein zur Verfuegung
> stellen sollte?

Toll! Habe Interesse, wuerde auch mitmachen.
Neben dem Pythonwin sollten sie auch mal idle , das schon in der
Grundinstallation dabei ist als Mini-IDE probieren. Ich bin gerade
dabei, mit den Corba-Tools herumzuspielen die es fuer Python gibt. Ilu
bekomme ich allerdings bislang nur unter Linux zu laufen, wenn fnorb
geht und Corba 2.0 richtig macht, halte ich das fuer einen interessanten
Ansatz. Vielleicht bekommt man damit sogar die aetzenden Hochlaufzeiten
von TKinter in den Griff.


Mit freundlichen Gruessen


Volker Bachschneider




Mehr Informationen über die Mailingliste Allegro