РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1112 of 1245 menu

Класс TcpStream

Класс TcpStream представляет собой TCP-соединение между двумя узлами сети. Он реализует типажи Read и Write, что позволяет читать данные из соединения и записывать их в соединение. Экземпляр TcpStream можно получить двумя способами: подключившись к удалённому серверу с помощью метода connect, либо приняв входящее соединение на стороне сервера через TcpListener.

Синтаксис

use std::net::TcpStream; let stream = TcpStream::connect("127.0.0.1:8080")?;

Пример

Давайте создадим TCP-сервер, который слушает порт, принимает одно соединение и отправляет клиенту строку "abcde":

use std::io::Write; use std::net::TcpListener; fn main() { let listener = TcpListener::bind("127.0.0.1:8080").unwrap(); for stream in listener.incoming() { let mut stream = stream.unwrap(); stream.write_all(b"abcde").unwrap(); break; } }

Пример

Давайте подключимся к серверу из предыдущего примера и прочитаем отправленные им данные:

use std::io::Read; use std::net::TcpStream; fn main() { let mut stream = TcpStream::connect("127.0.0.1:8080").unwrap(); let mut buf = String::new(); stream.read_to_string(&mut buf).unwrap(); println!("{}", buf); }

Результат выполнения кода:

"abcde"

Пример

Давайте получим адрес удалённого узла, к которому подключён поток, с помощью метода peer_addr:

use std::net::TcpStream; fn main() { let stream = TcpStream::connect("127.0.0.1:8080").unwrap(); let addr = stream.peer_addr().unwrap(); println!("{}", addr); }

Результат выполнения кода:

127.0.0.1:8080

Смотрите также

  • метод connect,
    который открывает TCP-соединение с удалённым узлом
  • метод peer_addr,
    который возвращает адрес удалённого узла
  • метод shutdown,
    который закрывает чтение, запись или обе части соединения
  • класс TcpListener,
    который принимает входящие TCP-соединения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить