1pub const SOL_SOCKET: i32 = 1;
5pub const IPPROTO_TCP: i32 = 6;
6pub const IPPROTO_IP: i32 = 0;
7
8pub const SO_REUSEADDR: i32 = 2;
10pub const SO_KEEPALIVE: i32 = 9;
11pub const SO_SNDBUF: i32 = 7;
12pub const SO_RCVBUF: i32 = 8;
13pub const SO_LINGER: i32 = 13;
14pub const SO_REUSEPORT: i32 = 15;
15
16pub const TCP_NODELAY: i32 = 1;
18
19#[derive(Clone, Copy, Debug)]
21pub struct SocketOptions {
22 pub reuse_addr: bool,
23 pub reuse_port: bool,
24 pub keepalive: bool,
25 pub tcp_nodelay: bool,
26 pub send_buffer_size: usize,
27 pub recv_buffer_size: usize,
28}
29
30impl Default for SocketOptions {
31 fn default() -> Self {
32 Self {
33 reuse_addr: false,
34 reuse_port: false,
35 keepalive: false,
36 tcp_nodelay: false,
37 send_buffer_size: 65536, recv_buffer_size: 65536, }
40 }
41}