Метод local_addr
Метод local_addr возвращает локальный адрес
сокета, то есть адрес, с которого отправляются данные
и на который они принимаются со стороны текущего
TCP-соединения. Метод не принимает параметров и
возвращает значение типа io::Result<SocketAddr>.
Если адрес удалось получить, результатом будет Ok
с объектом SocketAddr, содержащим IP-адрес и порт.
В противном случае возвращается ошибка.
Синтаксис
tcp_stream.local_addr()
Пример
Давайте установим TCP-соединение с сервером
"example.com:80" и узнаем локальный адрес,
с которого было установлено соединение:
use std::net::TcpStream;
fn main()
{
let stream = TcpStream::connect("example.com:80").unwrap();
let res = stream.local_addr().unwrap();
println!("{}", res);
}
Результат выполнения кода:
192.168.1.10:54321
Пример
Давайте обработаем возможную ошибку при получении
локального адреса с помощью конструкции match:
use std::net::TcpStream;
fn main()
{
let stream = TcpStream::connect("example.com:80").unwrap();
match stream.local_addr()
{
Ok(addr) => println!("local address: {}", addr),
Err(e) => println!("error: {}", e),
}
}
Результат выполнения кода:
local address: 192.168.1.10:54321
Смотрите также
-
метод
peer_addr,
который возвращает адрес удалённого узла соединения -
метод
connect,
который устанавливает TCP-соединение с удалённым узлом -
метод
connect_timeout,
который устанавливает соединение с ограничением по времени -
метод
shutdown,
который закрывает одну или обе половины соединения