pub struct Sender<M = Unconnected> { /* private fields */ }Expand description
A type used for sending OSC packets.
Implementations§
Source§impl<SM> Sender<SM>
impl<SM> Sender<SM>
Sourcepub fn local_addr(&self) -> Result<SocketAddr, Error>
pub fn local_addr(&self) -> Result<SocketAddr, Error>
The socket address that this Sender’s socket was created from.
Source§impl Sender<Unconnected>
impl Sender<Unconnected>
Sourcepub fn bind_to<A>(addr: A) -> Result<Self, Error>where
A: ToSocketAddrs,
pub fn bind_to<A>(addr: A) -> Result<Self, Error>where
A: ToSocketAddrs,
Creates a new Sender with the UDP socket bound to the given address. Note: this is
not the target address, rather it is the address of the socket used by the Sender to
send packets. Use the bind constructor instead if you would like the Sender’s socket
bound to the default address.
use nannou_osc::Sender;
fn main() {
let tx = Sender::bind_to("0.0.0.0:0").expect("Couldn't bind socket to the address");
}The returned Sender is Unconnected, meaning that it is not currently connected to a
specific target address. This means that the target address will have to be specified when
calling send. To connect the Sender to a specific target address, use the connect
builder method which will return a Sender in the Connected mode.
Sourcepub fn bind() -> Result<Self, Error>
pub fn bind() -> Result<Self, Error>
The same as bind_to but assumes the default_sender_socket_addr_v4 socket address.
Sourcepub fn connect<A>(self, addr: A) -> Result<Sender<Connected>, Error>where
A: ToSocketAddrs,
pub fn connect<A>(self, addr: A) -> Result<Sender<Connected>, Error>where
A: ToSocketAddrs,
Connects the Sender’s UDP socket to the given target, remote address.
The returned Sender will only send packets to the specified address.
Returns an error if some IO error occurred.
**Panic!**s if the given addr cannot resolve to a valid SocketAddr.
use nannou_osc::Sender;
fn main() {
let tx = Sender::bind()
.expect("Couldn't bind to default socket")
.connect("127.0.0.1:34254")
.expect("Couldn't connect to socket at address");
}Sourcepub fn send<P, A>(
&self,
packet: P,
addr: A,
) -> Result<usize, CommunicationError>
pub fn send<P, A>( &self, packet: P, addr: A, ) -> Result<usize, CommunicationError>
Sends the given packet on the Senders socket to the given address.
The given packet can be of any type that can be converted directly into a Packet. This
includes Message, Bundle and (String, Vec<Type>) (which will be interpreted as a
Message).
On success, returns the number of bytes written.
This will return a CommunicationError if:
- The given packet fails to be encoded to bytes
- The IP version of the local socket does not match that returned from
addror - The inner
UdpSocket::send_tocall fails.
Source§impl Sender<Connected>
impl Sender<Connected>
Sourcepub fn remote_addr(&self) -> SocketAddr
pub fn remote_addr(&self) -> SocketAddr
Returns the address of the socket to which the Sender is Connected.
Sourcepub fn send<P>(&self, packet: P) -> Result<usize, CommunicationError>
pub fn send<P>(&self, packet: P) -> Result<usize, CommunicationError>
Sends the given packet on the Senders socket to the connected address.
On success, returns the number of bytes written.
This will return a CommunicationError if:
- The given packet fails to be encoded to bytes
- The IP version of the local socket does not match the connected socket or
- The inner
UdpSocket::sendcall fails.