Метод connect
Метод connect класса TcpStream устанавливает
TCP соединение с удалённым узлом по указанному адресу.
Параметром метод принимает адрес удалённого узла,
который может быть представлен строкой, срезом строки
или любым типом, реализующим трейт ToSocketAddrs.
Метод возвращает результат типа Result<TcpStream, Error>:
при успешном соединении - объект TcpStream,
при ошибке - значение Error.
Метод connect является ассоциированной функцией,
то есть вызывается через имя класса с помощью двойного
двоеточия, а не через экземпляр.
Синтаксис
TcpStream::connect(addr)
Пример
Давайте попробуем установить соединение с локальным сервером на порту 8080:
use std::net::TcpStream;
fn main()
{
let res = TcpStream::connect("127.0.0.1:8080");
match res
{
Ok(stream) =>
{
println!("Connected: {:?}", stream.peer_addr());
}
Err(e) =>
{
println!("Error: {}", e);
}
}
}
Если сервер запущен, результат выполнения кода будет примерно таким:
Connected: Ok(127.0.0.1:8080)
Если сервер недоступен, будет выведено сообщение об ошибке:
Error: Connection refused (os error 111)
Пример
Давайте установим соединение с удалённым узлом по имени хоста и отправим ему простое сообщение:
use std::io::Write;
use std::net::TcpStream;
fn main()
{
match TcpStream::connect("example.com:80")
{
Ok(mut stream) =>
{
let msg = b"GET / HTTP/1.0\r\n\r\n";
stream.write_all(msg).unwrap();
println!("Request sent");
}
Err(e) =>
{
println!("Error: {}", e);
}
}
}
Результат выполнения кода:
"Request sent"
Смотрите также
-
класс
TcpStream,
который представляет TCP соединение между двумя узлами -
метод
connect_timeout,
который устанавливает соединение с заданным таймаутом -
метод
peer_addr,
который возвращает адрес удалённого узла -
метод
shutdown,
который закрывает часть или всё соединение