Module net/tcp

net/tcp

Async TCP networking — listeners and streams with Exception-based error handling.

Types

TcpListener object
TcpListener

A TCP socket that listens for incoming connections.

Fields

NameTypeDescription
_fdi32
_local_addrSocketAddr
_is_closedbool

Trait Implementations

impl(TcpListener, ...)
bind : (TcpListener) fn(addr : SocketAddr, io : Io) -> Impl(Future(TcpListener, IoExn))

Bind to a socket address and start listening.

Parameters

NameTypeNotes
addrSocketAddr
ioIo

Returns: Impl(Future(TcpListener, IoExn))

accept : (TcpListener) fn(self : TcpListener, io : Io) -> Impl(Future(TcpStream, IoExn))

Accept an incoming connection, returning a new TcpStream.

Parameters

NameTypeNotes
selfTcpListener
ioIo

Returns: Impl(Future(TcpStream, IoExn))

local_addr : (TcpListener) fn(self : TcpListener) -> SocketAddr

Get the local address this listener is bound to.

Parameters

NameTypeNotes
selfTcpListener

Returns: SocketAddr

close : (TcpListener) fn(self : TcpListener, io : Io) -> Impl(Future(unit, IoExn))

Close the stream.

Parameters

NameTypeNotes
selfTcpListener
ioIo

Returns: Impl(Future(unit, IoExn))

fd : (TcpListener) fn(self : TcpListener) -> i32

Get the underlying file descriptor.

Parameters

NameTypeNotes
selfTcpListener

Returns: i32

impl(TcpListener, Dispose(...))
dispose : (fn(self : Self) -> unit)

Returns: unit

TcpStream object
TcpStream

A connected TCP stream for bidirectional data transfer.

Fields

NameTypeDescription
_fdi32
_peer_addrSocketAddr
_is_closedbool

Trait Implementations

impl(TcpStream, ...)
connect : (TcpStream) fn(addr : SocketAddr, io : Io) -> Impl(Future(TcpStream, IoExn))

Connect to a remote address, returning a new TcpStream.

Parameters

NameTypeNotes
addrSocketAddr
ioIo

Returns: Impl(Future(TcpStream, IoExn))

read : (TcpStream) fn(self : TcpStream, buf : *(u8), size : usize, io : Io) -> Impl(Future(i32, IoExn))

Read bytes from the stream into buf. Returns the number of bytes read, or 0 if the peer closed the connection.

Parameters

NameTypeNotes
selfTcpStream
buf*(u8)
sizeusize
ioIo

Returns: Impl(Future(i32, IoExn))

write_str : (TcpStream) fn(self : TcpStream, data : str, io : Io) -> Impl(Future(i32, IoExn))

Write a str to the stream. Returns the number of bytes written.

Parameters

NameTypeNotes
selfTcpStream
datastr
ioIo

Returns: Impl(Future(i32, IoExn))

write_string : (TcpStream) fn(self : TcpStream, data : String, io : Io) -> Impl(Future(i32, IoExn))

Write a String to the stream. Returns the number of bytes written.

Parameters

NameTypeNotes
selfTcpStream
dataString
ioIo

Returns: Impl(Future(i32, IoExn))

write_bytes : (TcpStream) fn(self : TcpStream, data : ArrayList(u8), io : Io) -> Impl(Future(i32, IoExn))

Write raw bytes from an ArrayList(u8) to the stream. Returns the number of bytes written.

Parameters

NameTypeNotes
selfTcpStream
dataArrayList(u8)
ioIo

Returns: Impl(Future(i32, IoExn))

read_bytes : (TcpStream) fn(self : TcpStream, io : Io) -> Impl(Future(ArrayList(u8), IoExn))

Read all available data from the stream into a byte list.

Parameters

NameTypeNotes
selfTcpStream
ioIo

Returns: Impl(Future(ArrayList(u8), IoExn))

shutdown : (TcpStream) fn(self : TcpStream, how : i32, io : Io) -> Impl(Future(unit, IoExn))

Shut down part or all of the connection. how: 0 = read, 1 = write, 2 = both.

Parameters

NameTypeNotes
selfTcpStream
howi32
ioIo

Returns: Impl(Future(unit, IoExn))

close : (TcpStream) fn(self : TcpStream, io : Io) -> Impl(Future(unit, IoExn))

Close the stream.

Parameters

NameTypeNotes
selfTcpStream
ioIo

Returns: Impl(Future(unit, IoExn))

peer_addr : (TcpStream) fn(self : TcpStream) -> SocketAddr

Get the remote peer's socket address.

Parameters

NameTypeNotes
selfTcpStream

Returns: SocketAddr

fd : (TcpStream) fn(self : TcpStream) -> i32

Get the underlying file descriptor.

Parameters

NameTypeNotes
selfTcpStream

Returns: i32

set_nodelay : (TcpStream) fn(self : TcpStream, nodelay : bool, io : Io) -> Impl(Future(unit, IoExn))

Enable or disable TCP_NODELAY (disables Nagle's algorithm).

Parameters

NameTypeNotes
selfTcpStream
nodelaybool
ioIo

Returns: Impl(Future(unit, IoExn))

set_keepalive : (TcpStream) fn(self : TcpStream, enabled : bool, io : Io) -> Impl(Future(unit, IoExn))

Enable or disable SO_KEEPALIVE on the socket.

Parameters

NameTypeNotes
selfTcpStream
enabledbool
ioIo

Returns: Impl(Future(unit, IoExn))

impl(TcpStream, Dispose(...))
dispose : (fn(self : Self) -> unit)

Returns: unit