[−][src]Crate tcp_stream
mio's TCP stream on steroids
tcp-stream is a library aiming at providing TLS and futures/tokio support to mio's TcpStream without forcibly using tokio-reactor
Examples
To connect to a remote server:
use tcp_stream::{HandshakeError, TcpStream}; use std::io::{self, Read, Write}; fn main() { let stream = TcpStream::connect("google.com:443").unwrap(); let mut stream = stream.into_tls("google.com", None); while let Err(HandshakeError::WouldBlock(mid_handshake)) = stream { stream = mid_handshake.handshake(); } let mut stream = stream.unwrap(); while let Err(err) = stream.write_all(b"GET / HTTP/1.0\r\n\r\n") { if err.kind() != io::ErrorKind::WouldBlock { panic!("error: {:?}", err); } } stream.flush().unwrap(); let mut res = vec![]; while let Err(err) = stream.read_to_end(&mut res) { if err.kind() != io::ErrorKind::WouldBlock { panic!("stream error: {:?}", err); } } println!("{}", String::from_utf8_lossy(&res)); }
Structs
| Identity | Holds PKCS#12 DER-encoded identity and decryption password |
| NativeTlsConnector | Reexport native-tls's TlsConnector A builder for client-side TLS connections. |
| OpenSslConnector | Reexport openssl's TlsConnector A type which wraps client-side streams in a TLS session. |
| OpenSslMethod | Reexport openssl's TlsConnector
A type specifying the kind of protocol an |
| RustlsConnector | Reexport rustls-connector's TlsConnector The connector |
| RustlsConnectorConfig | Reexport rustls-connector's TlsConnector Configuration helper for RustlsConnector |
Enums
| HandshakeError | An error returned while performing the handshake |
| MidHandshakeTlsStream | A TLS stream which has been interrupted during the handshake |
| TcpStream | Wrapper around plain or TLS TCP streams |
Type Definitions
| HandshakeResult | Holds either the TLS TcpStream result or the current handshake state |
| NativeTlsHandshakeError | A HandshakeError from native-tls |
| NativeTlsMidHandshakeTlsStream | A MidHandshakeTlsStream from native-tls |
| NativeTlsStream | A TcpStream wrapped by native-tls |
| OpenSslErrorStack | An ErrorStack from openssl |
| OpenSslHandshakeError | A HandshakeError from openssl |
| OpenSslMidHandshakeTlsStream | A MidHandshakeTlsStream from openssl |
| OpenSslStream | A TcpStream wrapped by openssl |
| RustlsHandshakeError | A HandshakeError from rustls_connector |
| RustlsMidHandshakeTlsStream | A MidHandshakeTlsStream from rustls_connector |
| RustlsStream | A TcpStream wrapped by rustls |