nettverk
nettverk-modulen tilbyr TCP-nettverksstøtte.
Berre ved innebygd køyring
nettverk er ikkje tilgjengeleg i nettlesarleikeplassen.
bruk nettverkFunksjonar
nettverk.lytt(vert, port)
Lagar ein TCP-lyttar bunden til vert:port. Returnerer eit lyttarhandtak.
låst lyttar er nettverk.lytt("127.0.0.1", 8080)Kastar AddressInUse om porten allereie er i bruk.
nettverk.port(lyttar)
Returnerer det lokale portnummeret til lyttaren som eit heiltal. Nyttig når ein bind til port 0 for å la OS tildele ein ledig port.
låst lyttar er nettverk.lytt("127.0.0.1", 0)
terminal.skriv("Lyttar på port " + nettverk.port(lyttar))nettverk.godta(lyttar)
Blokkerer til det kjem ei innkomande TCP-tilkopling. Returnerer eit straumhandtak for tilkoplinga.
låst straum er nettverk.godta(lyttar)nettverk.kopleTil(vert, port)
Opnar ei TCP-tilkopling til vert:port. Returnerer eit straumhandtak. Kastar ConnectionRefused om tenaren ikkje lyttar.
låst kopling er nettverk.kopleTil("127.0.0.1", 8080)nettverk.les(straum, maksBytes)
Les opp til maksBytes byte frå straum. Returnerer dataa som ein streng. Returnerer ein tom streng ved tilkoplingsavslutning.
låst data er nettverk.les(straum, 1024)
terminal.skriv("Mottok: " + data)nettverk.skriv(straum, data)
Skriv data (streng) til straum.
nettverk.skriv(straum, "HTTP/1.0 200 OK\r\n\r\nHallo!")nettverk.lukk(handtak)
Lukkar eit lyttar- eller straumhandtak.
nettverk.lukk(straum)
nettverk.lukk(lyttar)nettverk.handter(lyttar, handterFn)
Tek imot tilkoplingar i ei løkke og kallar handterFn(straum) i ein ny tråd for kvar tilkopling. Blokkerer til lyttaren vert lukka (t.d. med nettverk.lukk(lyttar) frå innsida av handteraren), og ventar på at alle pågåande handtertrådar er ferdige før han returnerer.
nettverk.handter(lyttar, gjer handtar(straum) {
låst førespurnad er nettverk.les(straum, 4096)
nettverk.skriv(straum, "HTTP/1.1 200 OK\r\n\r\nHei!")
nettverk.lukk(straum)
})Eksempel: samtidsekkotenaren
bruk terminal
bruk nettverk
låst lyttar er nettverk.lytt("127.0.0.1", 9000)
terminal.skriv("Lyttar på port " + nettverk.port(lyttar))
gjer handtar(kopling) {
låst tekst er nettverk.les(kopling, 512)
terminal.skriv("Fekk: " + tekst)
nettverk.skriv(kopling, tekst)
nettverk.lukk(kopling)
}
nettverk.handter(lyttar, handtar)