OxL Reference

method TcpStream.read

Up to max bytes. An empty result means the peer closed its sending side (end of stream).

Example:

oxl✓ checked in CI
use std.net { SocketAddr, TcpListener, TcpStream, IpAddr }

fn main() -> () | NetError | ParseError  io, net {
  let l = TcpListener.bind(SocketAddr.parse("127.0.0.1:0")?)?
  defer l.close()?
  let c = TcpStream.connect(l.local, 2s)?
  defer c.close()?
  let s = l.accept(3s)?
  defer s.close()?
  c.write(b"abc")?
  print("{s.read(16)?}")
  c.shutdownWrite()?
  let rest = s.read(16)?
  print("{rest.len()}")
}
Output
b"abc"
0
pub(api) fn read(max: usize, timeout: Duration? = none) -> bytes | NetError  net

Complexity. O(max) at most; returns as soon as some bytes are available.

Since. 1.0.0-beta

Parameters

NameType
maxusize
timeoutDuration? = none

Returns

bytes

Errors

  • NetError
  • `Timeout` (nothing arrived in time), `Unavailable` (connection reset), `Cancelled`.

Effects

net

Defined in: std/net/net.oxl:552

See also