shutdown
fn shutdown(Stream s, int how) -> Result<unit, IoError> Import
Source: use io::net::tcp::{shutdown}; compiler/src/builtin_docs/io/net/tcp.hy Shuts down the reading half, the writing half, or both halves of a TCP stream.
how is 0 for reading, 1 for writing and 2 for both. After
shutting down writing, the peer reads end of file. The stream stays
open until close. Any other how returns Err(IoError::InvalidInput).
Parameters#
| Name | Type |
|---|---|
s | Stream |
how | int |
Returns#
Result<unit, IoError>
Examples#
use io::{IoError};
use io::net::tcp::{connect, listen, local_addr, shutdown};
use io::sync::{accept_wait, read_to_end};
use tests::assert;
fn run() -> Result<int, IoError> {
let listener = listen("127.0.0.1", 0)?;
let (_, port) = local_addr(listener)?;
let client = connect("127.0.0.1", port)?;
let server = accept_wait(listener)?;
shutdown(client, 1)?;
let rest = read_to_end(server)?;
return rest.len();
}
fn main() {
let n = match run() {
Result::Ok(n) => n,
Result::Err(_) => -1,
};
assert!(n == 0);
}
See also#
accept: Accepts one pending connection onlistenerwithout waiting.connect: Opens a TCP connection tohostonport.connect_timeout: Opens a TCP connection tohostonport, giving up aftermsmilliseconds.listen: Opens a TCP socket listening onhostandport.local_addr: Returns the local(host, port)of a TCP listener or connected TCP stream.peer_addr: Returns the remote(host, port)of a connected TCP stream.set_nodelay: TurnsTCP_NODELAYon or off for a TCP stream.