Gå til innhold

"Asynchronous communication" <-- ? -->


Anbefalte innlegg

Okei, hver gang jeg surrer med asynkrone sockets eller kommunikasjon generelt så blir det til at jeg gjør ting unødvendig komplisert og vanskelig, så nå tenkte jeg å skrive ned en måte å gjøre det på som er enkel og fungerer bra i de fleste tilfeller:

 

http://nostdal.org/~lars/articles/async.xhtml

PDF: http://nostdal.org/~lars/articles/async.pdf

 

Jeg har brukt Common Lisp som pseudokode, men dette er så enkelt at det bør være mulig å forstå for folk med annen bakgrunn også.

 

Jeg skriver på denne artikkelen samtidig som jeg hakker på et annet ganske kult prosjekt:

https://www.diskusjon.no/index.php?showtopic=595398

Endret av lnostdal
Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...

Først vil jeg si at jeg har "limited knowledge about Common Lisp"

 

message': A string of characters ending with a newline (\n).

Er det ikke store muligheter for buffer overrun angrep så lenge du ikke har en maks lengde. (mulig Common Lisp har en sperre for slik, men det vet ikke jeg noe om)

Lenke til kommentar

både heltall og strenger kan være uendelig store i Common Lisp (kun begrenset av maskinens minne) .. den bare utvider etterhvert .. (den bytter fra maskinens egne heltalltyper (raskere) til en egen "bignum"-type før den vil overflowe)

 

uansett kan man godt sette av en max-lengde for protokollen og si at den feiler når denne brytes, men sånn som C-siden (klienten) er nå så fortsetter den bare å allokere nye minne-chunker ettersom det kommer mer og mer data inn .. på ingen måte noen fare dette; da det er meningen at man skal styre dette fra en server man har satt opp selv .. klienten er altså den som initierer forbindelsen, så "slemme" peers kan ikke koble seg til klienten og begynne å sende jalla i den modellen jeg har tenkt her

 

edit:

modellen blir kanskje litt galt å si; kan i stedet si at dette kan ikke skje i sammenheng med det jeg har tenkt å bruke dette til

Endret av lnostdal
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...