Module sys/tcp

sys/tcp

Async TCP socket operations.

Provides TCP socket wrappers around the low-level C runtime externs. Uses the socket address helpers to construct sockaddr_in/sockaddr_in6 buffers.

All async operations return IOFuture which resolves to:

  • Positive value: success (fd for socket/accept, bytes for send/recv, 0 for others)
  • Negative value: -errno on failure

Types

SockAddr struct
SockAddr

Fields

NameTypeDescription
buf*(u8)
lenu32

Functions

socket function
fn(domain : i32, sock_type : i32, protocol : i32) -> IOFuture

Parameters

NameTypeNotes
domaini32
sock_typei32
protocoli32

Returns: IOFuture

bind function
fn(sockfd : i32, addr : *(u8), addrlen : u32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
addr*(u8)
addrlenu32

Returns: IOFuture

listen function
fn(sockfd : i32, backlog : i32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
backlogi32

Returns: IOFuture

accept function
fn(sockfd : i32, addr : *(u8), addrlen : *(u32)) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
addr*(u8)
addrlen*(u32)

Returns: IOFuture

connect function
fn(sockfd : i32, addr : *(u8), addrlen : u32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
addr*(u8)
addrlenu32

Returns: IOFuture

send function
fn(sockfd : i32, buf : *(u8), len : usize, flags : i32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
buf*(u8)
lenusize
flagsi32

Returns: IOFuture

recv function
fn(sockfd : i32, buf : *(u8), len : usize, flags : i32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
buf*(u8)
lenusize
flagsi32

Returns: IOFuture

shutdown function
fn(sockfd : i32, how : i32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
howi32

Returns: IOFuture

close function
fn(fd : i32) -> IOFuture

Parameters

NameTypeNotes
fdi32

Returns: IOFuture

setsockopt function
fn(sockfd : i32, level : i32, optname : i32, optval : *(u8), optlen : u32) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
leveli32
optnamei32
optval*(u8)
optlenu32

Returns: IOFuture

getsockopt function
fn(sockfd : i32, level : i32, optname : i32, optval : *(u8), optlen : *(u32)) -> IOFuture

Parameters

NameTypeNotes
sockfdi32
leveli32
optnamei32
optval*(u8)
optlen*(u32)

Returns: IOFuture

make_sockaddr_in function
fn(ip : *(u8), port : u16) -> SockAddr

Parameters

NameTypeNotes
ip*(u8)
portu16

Returns: SockAddr

fn(ip : *(u8), port : u16) -> SockAddr

Parameters

NameTypeNotes
ip*(u8)
portu16

Returns: SockAddr

fn(port : u16) -> SockAddr

Parameters

NameTypeNotes
portu16

Returns: SockAddr

fn(port : u16) -> SockAddr

Parameters

NameTypeNotes
portu16

Returns: SockAddr

free_sockaddr function
fn(addr : SockAddr) -> unit

Parameters

NameTypeNotes
addrSockAddr

Returns: unit

get_port_in function
fn(addr : *(u8)) -> u16

Parameters

NameTypeNotes
addr*(u8)

Returns: u16

get_addr_in function
fn(addr : *(u8)) -> u32

Parameters

NameTypeNotes
addr*(u8)

Returns: u32

get_family function
fn(addr : *(u8)) -> u16

Parameters

NameTypeNotes
addr*(u8)

Returns: u16

htons function
fn(hostshort : u16) -> u16

Parameters

NameTypeNotes
hostshortu16

Returns: u16

ntohs function
fn(netshort : u16) -> u16

Parameters

NameTypeNotes
netshortu16

Returns: u16

htonl function
fn(hostlong : u32) -> u32

Parameters

NameTypeNotes
hostlongu32

Returns: u32

ntohl function
fn(netlong : u32) -> u32

Parameters

NameTypeNotes
netlongu32

Returns: u32