The address this socket is bound to; with tcp_listen(":0"), which port it got.
Io :: #import "Extensions/Io";
main :: () {
Io.io_run(() {
listener, _ := Io.tcp_listen("127.0.0.1:0");
defer Io.close(listener);
address, error := Io.local_address(listener);
assert(error == .NONE);
assert(address.family == .IPV4 && address.port != 0);
});
}local_address :: (listener: Tcp_Listener) -> (Address, Io_Error)
Parameters
- listener: Tcp_Listener
Returns
local_address :: (stream: Tcp_Stream) -> (Address, Io_Error)
The local end of a connected stream: the address and port this side of the connection uses.
Parameters
- stream: Tcp_Stream
Returns
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);
mine, error := Io.local_address(client);
assert(error == .NONE && mine.port != address.port);
});