nettverk
The nettverk module provides TCP socket networking.
Native only
nettverk is not available in the browser playground.
bruk nettverkFunctions
nettverk.lytt(host, port)
Creates a TCP listener bound to host:port. Returns a listener handle.
låst listener er nettverk.lytt("127.0.0.1", 8080)Throws AddressInUse if the port is already bound.
nettverk.port(listener)
Returns the local port number of the listener as an integer. Useful when binding to port 0 to let the OS assign a free port.
låst listener er nettverk.lytt("127.0.0.1", 0)
terminal.skriv("Listening on port " + nettverk.port(listener))nettverk.godta(listener)
Blocks until an incoming TCP connection arrives. Returns a stream handle for the connection.
låst stream er nettverk.godta(listener)nettverk.kopleTil(host, port)
Opens a TCP connection to host:port. Returns a stream handle. Throws ConnectionRefused if the server isn't listening.
låst conn er nettverk.kopleTil("127.0.0.1", 8080)nettverk.les(stream, maxBytes)
Reads up to maxBytes bytes from stream. Returns the data as a string. Returns an empty string on connection close.
låst data er nettverk.les(stream, 1024)
terminal.skriv("Received: " + data)nettverk.skriv(stream, data)
Writes data (string) to stream.
nettverk.skriv(stream, "HTTP/1.0 200 OK\r\n\r\nHello!")nettverk.lukk(handle)
Closes a listener or stream handle.
nettverk.lukk(stream)
nettverk.lukk(listener)nettverk.handter(listener, handlerFn)
Accepts connections in a loop and calls handlerFn(stream) in a new thread for each one. Blocks until the listener is closed (e.g. with nettverk.lukk(listener) from inside the handler), then waits for all in-flight handler threads to finish before returning.
nettverk.handter(listener, gjer handler(stream) {
låst req er nettverk.les(stream, 4096)
nettverk.skriv(stream, "HTTP/1.1 200 OK\r\n\r\nHello!")
nettverk.lukk(stream)
})Example: concurrent echo server
bruk terminal
bruk nettverk
låst listener er nettverk.lytt("127.0.0.1", 9000)
terminal.skriv("Listening on port " + nettverk.port(listener))
gjer handler(conn) {
låst msg er nettverk.les(conn, 512)
terminal.skriv("Got: " + msg)
nettverk.skriv(conn, msg)
nettverk.lukk(conn)
}
nettverk.handter(listener, handler)