๐Ÿฆ€/100 Projects/Notes/Source

src/main.rs

View on GitHub
use std::io::{self, BufRead, BufReader, Write};
use std::net::TcpStream;
use std::thread;
 
fn main() -> std::io::Result<()> {
    println!("๐Ÿ“ค TCP Client Connecting to 127.0.0.1:7878...");
 
    let mut stream = TcpStream::connect("127.0.0.1:7878")?;
    let mut reader = BufReader::new(stream.try_clone()?);
 
    // Thread to listen for messages from server
    thread::spawn(move || {
        for line in reader.lines() {
            match line {
                Ok(msg) => println!("๐Ÿงพ Server: {}", msg),
                Err(_) => {
                    println!("โŒ Server disconnected.");
                    break;
                }
            }
        }
    });
 
    // Main thread: send input to server
    let stdin = io::stdin();
    for line in stdin.lock().lines() {
        let msg = line?;
        if msg == "exit" {
            println!("๐Ÿ‘‹ Disconnecting.");
            break;
        }
        stream.write_all(msg.as_bytes())?;
        stream.write_all(b"\n")?;
    }
 
    Ok(())
}

โ† Back to folder