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
| Name | Type | Description |
|---|---|---|
buf | *(u8) | |
len | u32 |
Functions
socket
function
fn(domain : i32, sock_type : i32, protocol : i32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
domain | i32 | |
sock_type | i32 | |
protocol | i32 |
Returns: IOFuture
bind
function
fn(sockfd : i32, addr : *(u8), addrlen : u32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
addr | *(u8) | |
addrlen | u32 |
Returns: IOFuture
listen
function
fn(sockfd : i32, backlog : i32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
backlog | i32 |
Returns: IOFuture
accept
function
fn(sockfd : i32, addr : *(u8), addrlen : *(u32)) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
addr | *(u8) | |
addrlen | *(u32) |
Returns: IOFuture
connect
function
fn(sockfd : i32, addr : *(u8), addrlen : u32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
addr | *(u8) | |
addrlen | u32 |
Returns: IOFuture
send
function
fn(sockfd : i32, buf : *(u8), len : usize, flags : i32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
buf | *(u8) | |
len | usize | |
flags | i32 |
Returns: IOFuture
recv
function
fn(sockfd : i32, buf : *(u8), len : usize, flags : i32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
buf | *(u8) | |
len | usize | |
flags | i32 |
Returns: IOFuture
shutdown
function
setsockopt
function
fn(sockfd : i32, level : i32, optname : i32, optval : *(u8), optlen : u32) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
level | i32 | |
optname | i32 | |
optval | *(u8) | |
optlen | u32 |
Returns: IOFuture
getsockopt
function
fn(sockfd : i32, level : i32, optname : i32, optval : *(u8), optlen : *(u32)) -> IOFuture
Parameters
| Name | Type | Notes |
|---|---|---|
sockfd | i32 | |
level | i32 | |
optname | i32 | |
optval | *(u8) | |
optlen | *(u32) |
Returns: IOFuture
make_sockaddr_in
function
make_sockaddr_in6
function
make_sockaddr_in_any
function
make_sockaddr_in_loopback
function
free_sockaddr
function
get_port_in
function
fn(addr : *(u8)) -> u16
Parameters
| Name | Type | Notes |
|---|---|---|
addr | *(u8) |
Returns: u16
get_addr_in
function
fn(addr : *(u8)) -> u32
Parameters
| Name | Type | Notes |
|---|---|---|
addr | *(u8) |
Returns: u32
get_family
function
fn(addr : *(u8)) -> u16
Parameters
| Name | Type | Notes |
|---|---|---|
addr | *(u8) |
Returns: u16
htons
function
fn(hostshort : u16) -> u16
Parameters
| Name | Type | Notes |
|---|---|---|
hostshort | u16 |
Returns: u16
ntohs
function
fn(netshort : u16) -> u16
Parameters
| Name | Type | Notes |
|---|---|---|
netshort | u16 |
Returns: u16
htonl
function
fn(hostlong : u32) -> u32
Parameters
| Name | Type | Notes |
|---|---|---|
hostlong | u32 |
Returns: u32
ntohl
function
fn(netlong : u32) -> u32
Parameters
| Name | Type | Notes |
|---|---|---|
netlong | u32 |
Returns: u32