feat: add unixsocket
This commit is contained in:
32
__linux/unixsocket/src/main.rs
Normal file
32
__linux/unixsocket/src/main.rs
Normal file
@@ -0,0 +1,32 @@
|
||||
use tokio::net::UnixListener;
|
||||
use tokio::stream::StreamExt;
|
||||
use tokio::io::AsyncWriteExt;
|
||||
use tokio::io::AsyncReadExt;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
let mut listener = UnixListener::bind("sampleunix.sock").unwrap();
|
||||
while let Some(stream) = listener.next().await {
|
||||
match stream {
|
||||
Ok(stream) => {
|
||||
println!("New client: {:?}", stream);
|
||||
let (mut read, mut write) = stream.into_split();
|
||||
let s = tokio::spawn(async move {
|
||||
let mut buf = [0; 1024];
|
||||
match read.read(&mut buf[..]).await {
|
||||
Err(e) => println!("Read err: {}", e),
|
||||
Ok(n) => {
|
||||
println!("Read: {:?}", &buf[0..n]);
|
||||
println!("Read: {}", String::from_utf8_lossy(&buf[0..n]));
|
||||
}
|
||||
}
|
||||
});
|
||||
s.await.ok();
|
||||
write.write(b"hello").await.ok();
|
||||
}
|
||||
Err(e) => {
|
||||
println!("Unix listern error: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user