Hallo,
ich habe mir Spaßes halber ein Programm geschrieben, dass Primzahlen findet. Da ich mir dachte, dass es doch sinnvoll wäre, wenn mehr Rechner helfen können, habe ich mir einen Server und einen Client geschrieben. Der Server nimmt Clients an und gibt ihnen immer wieder eine Zahl, die der Client untersuchen soll. Dieser gibt zurück, ja oder nein.
Der Server speichert dann die gefundenen Primzahlen.
Nun dachte ich mir, wenn ich schon sowas baue, will ich nicht irgend wann an die Grenzen der Zahlen kommen (ok, bis ich endlich bei max von long (9223372036854775807) ankommen würde, würde noch ne Zeit dauern aber man ist ja perfektionistisch ).
Deshalb bin ich nun auf BigInteger gestoßen, die sich gut anhören. Doch wie gebe ich die Zahlen vom Server zum Client? Denke als BigInteger-Objekt immer schicken, würde Leistungstechnisch net wirklich toll sein.
So bin ich darauf gestoßen, dass BigInteger Byte-Arrays von der Zahl machen können und der Konstruktor erlaubt genau ein solches Array auch. Hört sich toll an, ein Byte-Array kann ich auch prima in den Stream stopfen.
Nur, wie lese ich dann ein Byte-Array am besten aus, bei dem man die größe nicht weiß? Gibt es einen Reader, mit dem ich bequem readByteArray oder so aufrufen kann?
mit dem normalen Stream kann ich auch in ein Array lesen lassen. Aber da ich net genau weiß, wie lang es sein wird, müsste ich bei jeder Eingabe eine Schleife laufen lassen.
Weitere Möglichkeit wäre, dass ich erst die Zahl in den Stream schreibe, wie groß der Byte-Array werden wird und dann erst den Array selbst. So weiß ich beim Auslesen, wie groß es werden wird und kann ein dem entsprechend großes Array mitgeben.
Tut mir leid, wenn es eine Anfänger-Frage ist oder meine Ideen nicht wirklich effizient sind. ich bin leider noch nicht wirklich erfahren.
Vielen Dank für eure Hilfe.
lg~
Ulrikop
ich habe mir Spaßes halber ein Programm geschrieben, dass Primzahlen findet. Da ich mir dachte, dass es doch sinnvoll wäre, wenn mehr Rechner helfen können, habe ich mir einen Server und einen Client geschrieben. Der Server nimmt Clients an und gibt ihnen immer wieder eine Zahl, die der Client untersuchen soll. Dieser gibt zurück, ja oder nein.
Der Server speichert dann die gefundenen Primzahlen.
Nun dachte ich mir, wenn ich schon sowas baue, will ich nicht irgend wann an die Grenzen der Zahlen kommen (ok, bis ich endlich bei max von long (9223372036854775807) ankommen würde, würde noch ne Zeit dauern aber man ist ja perfektionistisch ).
Deshalb bin ich nun auf BigInteger gestoßen, die sich gut anhören. Doch wie gebe ich die Zahlen vom Server zum Client? Denke als BigInteger-Objekt immer schicken, würde Leistungstechnisch net wirklich toll sein.
So bin ich darauf gestoßen, dass BigInteger Byte-Arrays von der Zahl machen können und der Konstruktor erlaubt genau ein solches Array auch. Hört sich toll an, ein Byte-Array kann ich auch prima in den Stream stopfen.
Nur, wie lese ich dann ein Byte-Array am besten aus, bei dem man die größe nicht weiß? Gibt es einen Reader, mit dem ich bequem readByteArray oder so aufrufen kann?
mit dem normalen Stream kann ich auch in ein Array lesen lassen. Aber da ich net genau weiß, wie lang es sein wird, müsste ich bei jeder Eingabe eine Schleife laufen lassen.
Weitere Möglichkeit wäre, dass ich erst die Zahl in den Stream schreibe, wie groß der Byte-Array werden wird und dann erst den Array selbst. So weiß ich beim Auslesen, wie groß es werden wird und kann ein dem entsprechend großes Array mitgeben.
Tut mir leid, wenn es eine Anfänger-Frage ist oder meine Ideen nicht wirklich effizient sind. ich bin leider noch nicht wirklich erfahren.
Vielen Dank für eure Hilfe.
lg~
Ulrikop
Zuletzt bearbeitet: