More than meets the eye
There is no I in TEAM... but there is ME
system specs
Verwijderd
Als de 2 sockets verbonden zijn, kun je aan beide kanten een InputStream en een OutputStream opvragen. Wat je daar dan verder mee doet moet je zelf weten.
Hoe bedoel je dat met die pauze precies? Dat de ontvangende kant niet blockt om te 'wachten' op input of iets dergelijks? Dan denk ik aan een aparte thread die dus toch gaat zitten wachten.
The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'
Vereist in mijn situatie wat meer werk. Los ik wel op denk ik.kasper_vk schreef op 03 april 2004 @ 14:14:
Directe verbinding tussen 2 normale sockets? Niet mogelijk voor zover ik weet; waarom zou je dat willen? Wat is het bezwaar tegen een ServerSocket?
De ontvangende kant moet juist blocken; het gaat mij erom dat de verzendende kant OOK blockt. Dat doet hij standaard NIET.Hoe bedoel je dat met die pauze precies? Dat de ontvangende kant niet blockt om te 'wachten' op input of iets dergelijks? Dan denk ik aan een aparte thread die dus toch gaat zitten wachten.
More than meets the eye
There is no I in TEAM... but there is ME
system specs
De verzendende kant laten blocked gaat niet zomaar. Je operating system zal namelijk buffer spelen, dus voordat 'ie kan blocken ben je vast een heleboel megabytes verder.
[ Voor 10% gewijzigd door Infinitive op 03-04-2004 16:11 ]
putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]
Kijk anders eens naar PipedInputStream en PipedOutputStream, misschien doen die wel wat je wil.
PipedInputStream
A piped input stream should be connected to a piped output stream; the piped input stream then provides whatever data bytes are written to the piped output stream. Typically, data is read from a PipedInputStream object by one thread and data is written to the corresponding PipedOutputStream by some other thread. Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread. The piped input stream contains a buffer, decoupling read operations from write operations, within limits.
Misschien moet ik anders wat meer low level gaan werken.
More than meets the eye
There is no I in TEAM... but there is ME
system specs
Of zijn de twee applicaties identiek?
More than meets the eye
There is no I in TEAM... but there is ME
system specs
Verwijderd
Realtime Distributed Shared Dataspace (hele mond volVerwijderd schreef op 03 april 2004 @ 20:23:
Misschien als je wat meer verteld over wat voor applicatie je aan het maken bent we je misschien wat meer suggesties kunnen geven over de aanpak en mogelijkheden
Voorlopig ff niet distributed, om het wat makkelijker te houden.
Werking: ene applicatie ("clients") stuurt verschillende berichten periodiek naar de space ("server"). Periode per soort dus. Er komt 1 thread per soort bericht, die de berichten afhandelt, en eventueel berichten (weer periodiek) terugstuurt.
Nu was het idee dus dat het ontvangen en versturen van berichten ook in de threads zit, dus ook 1 connectie per thread. Alleen die threads wou ik dus wel al aan het allereerste begin van de applicatie creeren en schedulen om de overhead tijdens het echte draaien te verminderen. Maw de threads worden eerder gecreeerd dan de connecties die ze gaan gebruiken.
More than meets the eye
There is no I in TEAM... but there is ME
system specs
En aan de client kant SocketChannel.open(SocketAddress) om daarmee te connecten?
Wat is dan precies het verschil met sockets??
More than meets the eye
There is no I in TEAM... but there is ME
system specs
Enne, hoe wou jij dan het (in parallel) afhandelen van messages van de connecties doen zonder threads?
Maar als die NIO idd zoveel sneller is, dan zal ik echt wel die gebruiken
More than meets the eye
There is no I in TEAM... but there is ME
system specs
Verwijderd
Als je nou eerst even wat meer over NIO gaat lezen op de site van sun dan kom je vanzelf achter het antwoord op je vraag... NIO maakt het juiste mogelijk om via 1 thread vele (denk aan 5000) connecties te verwerken zonder dat je daar vele threads voor nodig hebt.IceManX schreef op 04 april 2004 @ 18:27:
Enne, hoe wou jij dan het (in parallel) afhandelen van messages van de connecties doen zonder threads?
[ Voor 12% gewijzigd door Verwijderd op 04-04-2004 20:39 ]
Je hebt al gekeken naar Javaspaces, en nog een link?IceManX schreef op 03 april 2004 @ 20:40:
[...]
Realtime Distributed Shared Dataspace (hele mond vol.
[ Voor 14% gewijzigd door Alarmnummer op 04-04-2004 21:13 ]
Ja, ik heb zelfs de specs op mijn HD op school staan.Alarmnummer schreef op 04 april 2004 @ 21:00:
[...]
Je hebt al gekeken naar Javaspaces, en nog een link?
Maar al in hoofdstuk 1 (Introduction) van het verslag zal komen te staan: "RGSpace (naam van het project) is not a JavaSpace"
(want de voorloper, GSpace, was dat ook absoluut niet)
[ Voor 7% gewijzigd door Robtimus op 04-04-2004 21:17 ]
More than meets the eye
There is no I in TEAM... but there is ME
system specs
En ik dacht nog een goeie beurt te makenIceManX schreef op 04 april 2004 @ 21:16:
[...]
Ja, ik heb zelfs de specs op mijn HD op school staan.
Maar al in hoofdstuk 1 (Introduction) van het verslag zal komen te staan: "RGSpace (naam van het project) is not a JavaSpace"
De naam van jullie project deed me meteen denken aan Javaspaces, dus vandaar. En verder is het ook redelijk onbekend, want ik had er tot een maand geleden, nooit van gehoord.
Wat is in het kort het verschil tussen Javaspaces en jullie project?
1) geen matching op subtypes (zat niet in GSpace, dan ook niet in RGSpace)Alarmnummer schreef op 04 april 2004 @ 21:23:
[...]
En ik dacht nog een goeie beurt te maken
De naam van jullie project deed me meteen denken aan Javaspaces, dus vandaar. En verder is het ook redelijk onbekend, want ik had er tot een maand geleden, nooit van gehoord.
Wat is in het kort het verschil tussen Javaspaces en jullie project?
2) geen transacties (nog)
3) "A read request acts like a readIfExists except that it will wait until a
matching entry is found or until transactions settle, whichever is longer, up to
the timeout period." Niet in RGSpace, niet aanwezig => return null
4) geen support voor snapshot
5) distributie van data is verschillend en configureerbaar per "entry" type (bv type 1 wordt alleen in node 1 opgeslagen, type 2 in alle nodes, etc)
Er zullen er nog wel een paar zijn, maar dit is wat ik zo kan verzinnen. Maar je hebt gelijk, er is ook aardig wat overlap. Ze zijn dan ook beide gebaseerd op het LINDA model.
More than meets the eye
There is no I in TEAM... but there is ME
system specs