[][src]Function ductile::connect_channel_with_enc

pub fn connect_channel_with_enc<A: ToSocketAddrs, S, R>(
    addr: A,
    enc_key: &[u8; 32]
) -> Result<(ChannelSender<S>, ChannelReceiver<R>)>

Connect to a remote channel encrypting the connection.

All the remote channels are full-duplex, therefore this function returns a channel for sending the message and a channel from where receive them.

let port = 18456; // let's hope we can bind this port!
let key = [42; 32];
let mut server = ChannelServer::<(), _>::bind_with_enc(("127.0.0.1", port), key).unwrap();

let client_thread = std::thread::spawn(move || {
    let (sender, receiver) = connect_channel_with_enc::<_, _, ()>(("127.0.0.1", port), &key).unwrap();

    sender.send(vec![1, 2, 3, 4]).unwrap();
});

let (sender, receiver, _addr) = server.next().unwrap();
let data: Vec<i32> = receiver.recv().unwrap();
assert_eq!(data, vec![1, 2, 3, 4]);