On Mon, Mar 25, 2002 at 07:49:49PM +0100, Konrad Rosenbaum wrote:
Ja. Und auch schon recht interessante Entdeckungen gemacht.
Beispiel: auf HP/UX verlieren Pipes, die zuviel Daten zu schnell transferieren sollen ab und zu einige Bytes. AF_LOCAL Sockets sind zuverlaessiger (man 2 socketpair).
HP/UX steht sowieso nicht zur Debatte...
Ich muß zwischen einigen Prozessen strukturierte Daten austauschen und wüßte gern, ob es dafür eine "übliche" Vorgehensweise über pipes gibt.
Im Moment XML. Vorher ASCII. Weil halt Kompatibel (was bei lokalen Verbindungen aber wirklich keinen Sinn macht). Manchmal
Ja, lokal. XML wäre Oversized, ASCII hätte den Nachteil, daß unnötig konvertiert werden muß. Wenn ich so darüber nachdenke: Beim Versand übers Netz wäre ASCII aber sicher besser, da sich die Platform an der Senke langfristig gesehen ändern könnte...
CORBA/DCOP/DCOM/etc.pp.
ebenso wie RPC an der Stelle Bloat.
Pragmatiker nehmen serialisierte Binaerdaten irgendeiner Form.
Also wie unten?
char buf[MAXTYPELEN+4]; int len,*id=(int*)buf; struct irgendwas *iwas=buf+sizeof(int); struct sonstwas *swas=buf+sizeof(int); read(fd,&len,sizeof(len)); read(fd,buf,len+sizeof(int)); switch(*id){ case IRGENDWAS: /*tu was mit *iwas */ break; /*...*/ }
An genau sowas dachte ich. Ich wollte nur sicher gehen, daß es nicht irgendwas eleganteres gibt, was nicht gleich alles so aufplustert.
union { struct irgendwas iwas; struct sonstwas swas; } alles;
union == doof (persönliche Meinung/Antipathie)
Hat überhaupt jemand kapiert, was ich mit diesem konfusen Text fragen will?
Ja, hast Du meine Antwort verstanden? ;-)
Denke schon. ;-)
Vielleicht doch ASCII oder gar XML? Na mal sehen, wie sich das so anläßt...
Danke, Eric