Struct ockam_transport_tcp::TcpTransport [−][src]
pub struct TcpTransport { /* fields omitted */ }
Expand description
High level management interface for TCP transports
Be aware that only one TcpTransport
can exist per node, as it
registers itself as a router for the TCP
address type. Multiple
calls to TcpTransport::create
will fail.
To listen for incoming connections use
tcp.listen()
.
To register additional connections on an already initialised
TcpTransport
, use tcp.connect()
.
This step is optional because the underlying TcpRouter is capable of lazily
establishing a connection upon arrival of an initial message.
use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?; // Listen on port 8000
tcp.connect("127.0.0.1:5000").await?; // And connect to port 5000
The same TcpTransport
can also bind to multiple ports.
let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?; // Listen on port 8000
tcp.listen("127.0.0.1:9000").await?; // Listen on port 9000
Implementations
Create a new TCP transport and router for the current node
use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
Manually establish an outgoing TCP connection on an existing transport. This step is optional because the underlying TcpRouter is capable of lazily establishing a connection upon arrival of the initial message.
use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?; // Listen on port 8000
tcp.connect("127.0.0.1:5000").await?; // and connect to port 5000
Create Tcp Inlet that listens on bind_addr, transforms Tcp stream into Ockam Routable Messages and forward them to Outlet using onward_route. Inlet is bidirectional: Ockam Messages sent to Inlet from Outlet (using return route) will be streamed to Tcp connection. Pair of corresponding Inlet and Outlet is called Portal.
use ockam_transport_tcp::{TcpTransport, TCP};
let hop_addr = "INTERMEDIARY_HOP:8000";
let route_path = route![(TCP, hop_addr), "outlet"];
let tcp = TcpTransport::create(&ctx).await?;
tcp.create_inlet("inlet", route_path).await?;
Stop inlet at addr
use ockam_transport_tcp::{TcpTransport, TCP};
let hop_addr = "INTERMEDIARY_HOP:8000";
let route = route![(TCP, hop_addr), "outlet"];
let tcp = TcpTransport::create(&ctx).await?;
tcp.create_inlet("inlet", route).await?;
tcp.stop_inlet("inlet").await?;
Create Tcp Outlet Listener at address, that connects to peer using Tcp, transforms Ockam Messages received from Inlet into stream and sends it to peer Tcp stream. Outlet is bidirectional: Tcp stream received from peer is transformed into Ockam Routable Messages and sent to Inlet using return route. Pair of corresponding Inlet and Outlet is called Portal.
use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
tcp.create_outlet("outlet", "localhost:9000").await?;
Stop outlet at addr
use ockam_transport_tcp::TcpTransport;
const TARGET_PEER: &str = "127.0.0.1:5000";
let tcp = TcpTransport::create(&ctx).await?;
tcp.create_outlet("outlet", TARGET_PEER).await?;
tcp.stop_outlet("outlet").await?;
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for TcpTransport
impl Send for TcpTransport
impl Sync for TcpTransport
impl Unpin for TcpTransport
impl !UnwindSafe for TcpTransport
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more