mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00

Related to #1318, Tokio APIs that are "less stable" are moved into a new `tokio-util` crate. This crate will mirror `tokio` and provide additional APIs that may require a greater rate of breaking changes. As examples require `tokio-util`, they are moved into a separate crate (`examples`). This has the added advantage of being able to avoid example only dependencies in the `tokio` crate.
34 lines
813 B
Rust
34 lines
813 B
Rust
//! Hello world server.
|
|
//!
|
|
//! A simple client that opens a TCP stream, writes "hello world\n", and closes
|
|
//! the connection.
|
|
//!
|
|
//! You can test this out by running:
|
|
//!
|
|
//! ncat -l 6142
|
|
//!
|
|
//! And then in another terminal run:
|
|
//!
|
|
//! cargo run --example hello_world
|
|
|
|
#![warn(rust_2018_idioms)]
|
|
|
|
use tokio::io::AsyncWriteExt;
|
|
use tokio::net::TcpStream;
|
|
|
|
use std::error::Error;
|
|
|
|
#[tokio::main]
|
|
pub async fn main() -> Result<(), Box<dyn Error>> {
|
|
// Open a TCP stream to the socket address.
|
|
//
|
|
// Note that this is the Tokio TcpStream, which is fully async.
|
|
let mut stream = TcpStream::connect("127.0.0.1:6142").await?;
|
|
println!("created stream");
|
|
|
|
let result = stream.write(b"hello world\n").await;
|
|
println!("wrote to stream; success={:?}", result.is_ok());
|
|
|
|
Ok(())
|
|
}
|