Skip to main content

socket

Socket networking bindings for ESP32 Provides low-level socket operations for TCP/UDP communication

export enum AddressFamily {
Ipv4 = 0,
Ipv6 = 1
}

export enum SocketType {
Stream = 0,
Dgram = 1,
Raw = 2
}

export enum SocketProtocol {
Default = 0,
Tcp = 1,
Udp = 2,
Icmp = 3
}

export enum SocketError {
Ok = 0,
InvalidArg = 1,
ConnectionRefused = 2,
Timeout = 3,
NetworkUnreachable = 4,
HostUnreachable = 5,
ConnectionReset = 6,
WouldBlock = 7
}


// @ts-ignore
@external("socket", "socketaddr_create")
export declare function socketaddrCreate(): u32;


// @ts-ignore
@external("socket", "socketaddr_set_port")
export declare function socketaddrSetPort(addr: u32, port: i32): void;


// @ts-ignore
@external("socket", "socketaddr_set_host")
export declare function socketaddrSetHost(addr: u32, host: u32): void;


// @ts-ignore
@external("socket", "socketaddr_set_family")
export declare function socketaddrSetFamily(addr: u32, family: i32): void;


// @ts-ignore
@external("socket", "socketaddr_destroy")
export declare function socketaddrDestroy(addr: u32): void;


// @ts-ignore
@external("socket", "socket_create")
export declare function socketCreate(domain: i32, type: i32, protocol: i32): i32;


// @ts-ignore
@external("socket", "socket_connect")
export declare function socketConnect(sockfd: i32, addr: u32): i32;


// @ts-ignore
@external("socket", "socket_send")
export declare function socketSend(sockfd: i32, buffer: i32, len: i32): i32;


// @ts-ignore
@external("socket", "socket_recv")
export declare function socketRecv(sockfd: i32, buffer: i32, len: i32): i32;


// @ts-ignore
@external("socket", "socket_close")
export declare function socketClose(sockfd: i32): i32;