method TcpStream.read
Up to max bytes. An empty result means the peer closed its sending side (end of stream).
Example:
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 netComplexity. O(max) at most; returns as soon as some bytes are available.
Since. 1.0.0-beta
Parameters
| Name | Type |
|---|---|
max | usize |
timeout | Duration? = none |
Returns
bytes
Errors
NetError- `Timeout` (nothing arrived in time), `Unavailable` (connection reset), `Cancelled`.
Effects
net
Defined in: std/net/net.oxl:552