Struct shadowsocks_service::net::mon_socket::MonProxySocket
source · pub struct MonProxySocket { /* private fields */ }
Expand description
Monitored ProxySocket
Implementations§
source§impl MonProxySocket
impl MonProxySocket
sourcepub fn from_socket(
socket: ProxySocket,
flow_stat: Arc<FlowStat>
) -> MonProxySocket
pub fn from_socket( socket: ProxySocket, flow_stat: Arc<FlowStat> ) -> MonProxySocket
Create a new socket with flow monitor
sourcepub async fn send(&self, addr: &Address, payload: &[u8]) -> Result<()>
pub async fn send(&self, addr: &Address, payload: &[u8]) -> Result<()>
Send a UDP packet to addr through proxy
sourcepub async fn send_with_ctrl(
&self,
addr: &Address,
control: &UdpSocketControlData,
payload: &[u8]
) -> Result<()>
pub async fn send_with_ctrl( &self, addr: &Address, control: &UdpSocketControlData, payload: &[u8] ) -> Result<()>
Send a UDP packet to addr through proxy
sourcepub async fn send_to<A: ToSocketAddrs>(
&self,
target: A,
addr: &Address,
payload: &[u8]
) -> Result<()>
pub async fn send_to<A: ToSocketAddrs>( &self, target: A, addr: &Address, payload: &[u8] ) -> Result<()>
Send a UDP packet to target from proxy
sourcepub async fn send_to_with_ctrl<A: ToSocketAddrs>(
&self,
target: A,
addr: &Address,
control: &UdpSocketControlData,
payload: &[u8]
) -> Result<()>
pub async fn send_to_with_ctrl<A: ToSocketAddrs>( &self, target: A, addr: &Address, control: &UdpSocketControlData, payload: &[u8] ) -> Result<()>
Send a UDP packet to target from proxy
sourcepub async fn recv(&self, recv_buf: &mut [u8]) -> Result<(usize, Address)>
pub async fn recv(&self, recv_buf: &mut [u8]) -> Result<(usize, Address)>
Receive packet from Shadowsocks’ UDP server
This function will use recv_buf
to store intermediate data, so it has to be big enough to store the whole shadowsocks’ packet
It is recommended to allocate a buffer to have at least 65536 bytes.
sourcepub async fn recv_with_ctrl(
&self,
recv_buf: &mut [u8]
) -> Result<(usize, Address, Option<UdpSocketControlData>)>
pub async fn recv_with_ctrl( &self, recv_buf: &mut [u8] ) -> Result<(usize, Address, Option<UdpSocketControlData>)>
Receive packet from Shadowsocks’ UDP server
This function will use recv_buf
to store intermediate data, so it has to be big enough to store the whole shadowsocks’ packet
It is recommended to allocate a buffer to have at least 65536 bytes.
sourcepub async fn recv_from(
&self,
recv_buf: &mut [u8]
) -> Result<(usize, SocketAddr, Address)>
pub async fn recv_from( &self, recv_buf: &mut [u8] ) -> Result<(usize, SocketAddr, Address)>
Receive packet from Shadowsocks’ UDP server
This function will use recv_buf
to store intermediate data, so it has to be big enough to store the whole shadowsocks’ packet
It is recommended to allocate a buffer to have at least 65536 bytes.
sourcepub async fn recv_from_with_ctrl(
&self,
recv_buf: &mut [u8]
) -> Result<(usize, SocketAddr, Address, Option<UdpSocketControlData>)>
pub async fn recv_from_with_ctrl( &self, recv_buf: &mut [u8] ) -> Result<(usize, SocketAddr, Address, Option<UdpSocketControlData>)>
Receive packet from Shadowsocks’ UDP server
This function will use recv_buf
to store intermediate data, so it has to be big enough to store the whole shadowsocks’ packet
It is recommended to allocate a buffer to have at least 65536 bytes.