tcp_wrapper_net/
lib.rs

1use std::net::{TcpStream,TcpListener};
2use std::io::{Read, Write};
3 
4pub struct Tcp {
5    ip: String,
6    port: String,
7}
8
9impl Tcp {
10    pub fn new(ip: String, port: String) -> Self {
11        Tcp { ip, port }
12    }
13
14    pub fn bind(&self) {
15        let listener = TcpListener::bind(
16            format!("{}:{}",
17            self.ip,self.port)).unwrap();
18        
19        for socket in listener.incoming() {
20            self.listen_connections(socket.unwrap());
21        }
22    }
23
24    fn listen_connections(&self,mut socket: TcpStream) {
25        loop {
26            let mut buffer = [0; 1024];
27            match socket.read(&mut buffer) {
28                Ok(n) => {
29                    if n == 0 {
30                        break;
31                    }
32                }
33                Err(error) => {
34                    println!("Error reading data: {:?}", error);
35                    break;
36                }
37            }
38        }
39    }
40     
41}
42
43
44
45
46#[cfg(test)]
47mod tests {
48    use super::*;
49}