use tokio::net::TcpStream; use tokio::io::AsyncWriteExt; use tokio::time::{Duration, sleep}; use anyhow::Result; use super::Cli; pub async fn create_tcp_stream() -> Result { let stream = TcpStream::connect("127.0.0.1:7753").await?; Ok(stream) } pub async fn try_send(stream: Result, params: Cli) -> Result<()> { use serde_json::to_string; let mut stream = stream?; loop { if stream.writable().await.is_err() { sleep(Duration::from_millis(100)).await; continue; } // let msg: Cli = from_str(&format!("{:?}", params))?; let msg= to_string(¶ms)?; // let msg = r"HTTP/1.1 POST\r\nContent-Length: 14\r\nContent-Type: text/plain\r\n\r\nHello, World!@"; stream.write_all(msg.as_bytes()).await?; // ... break; } Ok(()) }