tcp_listener.rs 866 B

1234567891011121314151617181920212223
  1. use std::io::{Read, Write};
  2. use std::net::SocketAddr;
  3. use wasmedge_wasi_socket::{Shutdown, TcpListener, TcpStream};
  4. fn handle_client((mut stream, addr): (TcpStream, SocketAddr)) -> std::io::Result<()> {
  5. let local_addr = stream.local_addr()?;
  6. println!("{} <-> {}", addr.to_string(), local_addr);
  7. let mut buf = String::new();
  8. stream.read_to_string(&mut buf)?;
  9. println!("get message: {}", buf);
  10. println!("sendback reversed message...");
  11. stream.write(&buf.chars().rev().collect::<String>().into_bytes())?;
  12. stream.shutdown(Shutdown::Both)?;
  13. Ok(())
  14. }
  15. fn main() -> std::io::Result<()> {
  16. let port = std::env::var("PORT").unwrap_or("1234".to_string());
  17. println!("listening at 127.0.0.1:{}", port);
  18. let listener = TcpListener::bind(format!("127.0.0.1:{}", port), false)?;
  19. handle_client(listener.accept(false).unwrap())
  20. }