Closes the sending side; the peer reads the end of the stream once it has what was sent.
Io :: #import "Extensions/Io";
Io.io_run(() {
listener, _ := Io.tcp_listen("127.0.0.1:0");
defer Io.close(listener);
address, _ := Io.local_address(listener);
client, _ := Io.connect(address);
server, _ := Io.accept(listener);
defer Io.close(client);
defer Io.close(server);
Io.write(client, "done");
Io.shutdown_write(client);
data, _ := Io.read_all(Io.reader_of(server));
assert(cast(string) data == "done");
free(data.data);
});shutdown_write :: (stream: Tcp_Stream) -> Io_Error
Parameters
- stream: Tcp_Stream
Returns
shutdown_write :: (stream: *Pipe_Stream) -> Io_Error
This end will send nothing more: the other end reads what was sent, then 0.
Parameters
- stream: *Pipe_Stream
Returns
Io :: #import "Extensions/Io";
Io.io_run(() {
client, server := Io.make_pipe();
defer Io.close(client);
defer Io.close(server);
Io.write(client, "bye");
Io.shutdown_write(client);
data, _ := Io.read_all(Io.reader_of(server));
assert(cast(string) data == "bye");
free(data.data);
});