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