pub struct Worker<T: Socket + ?Sized> { /* private fields */ }Expand description
Worker struct is used for multithreaded file sending and receiving.
It creates a new socket using the Server’s IP and a random port
requested from the OS to communicate with the requesting client.
See Worker::send() and Worker::receive() for more details.
§Example
use std::{net::{UdpSocket, SocketAddr}, path::PathBuf, str::FromStr, time::Duration};
use tftpd::{Worker};
// Send a file, responding to a read request.
let socket = UdpSocket::bind("127.0.0.1:0").unwrap();
socket.connect(SocketAddr::from_str("127.0.0.1:12345").unwrap()).unwrap();
let has_options = false;
let worker = Worker::new(
Box::new(socket),
PathBuf::from_str("Cargo.toml").unwrap(),
Default::default(),
Default::default(),
);
worker.send(has_options).unwrap();Implementations§
Source§impl<T: Socket + ?Sized> Worker<T>
impl<T: Socket + ?Sized> Worker<T>
Sourcepub fn new(
socket: Box<T>,
file_path: PathBuf,
opt_local: OptionsPrivate,
opt_common: OptionsProtocol,
) -> Worker<T>
pub fn new( socket: Box<T>, file_path: PathBuf, opt_local: OptionsPrivate, opt_common: OptionsProtocol, ) -> Worker<T>
Creates a new Worker with the supplied options.
Auto Trait Implementations§
impl<T> Freeze for Worker<T>where
T: ?Sized,
impl<T> RefUnwindSafe for Worker<T>where
T: RefUnwindSafe + ?Sized,
impl<T> Send for Worker<T>where
T: ?Sized,
impl<T> Sync for Worker<T>where
T: ?Sized,
impl<T> Unpin for Worker<T>where
T: ?Sized,
impl<T> UnwindSafe for Worker<T>where
T: UnwindSafe + ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more