Files in the top-level directory from the latest check-in
- build.sh
- license.txt
- osn.c
- Readme.txt
- test_tcp_connect.lua
- test_tcp_serve.lua
- test_udp_connect.lua
- test_udp_serve.lua
socket errors:
nil, error message[, errno]
special error messages:
nil, "closed" socket is closed (may apply only to receive OR send)
nil, "timeout" receiving/sending did run into a timeout
-> on receive there might be:
"", "timeout" (just retry)
nil, "timeout" (better give up)
nil, "signal", sig, message, signo
-> sig is one of: {"int", "term", "pipe", "usr1", "usr2"}
== connect / serve (/ udp_socket) ==
connect to a server / start a server
arg1: table:
=> port or usock must be set
- usock: string unix socket path
- port: string port (or service)
- ip: string ip (or name)
=> all other are optional
- family: string - default, depends on IP/usock
- protocol: string - "[t]cp" (default), "[u]dp"
- tcp_nodelay: boolean (advanced setting, default false)
=> connect supports:
- connect_timeout: integer timeout in milliseconds
=> serve supports:
- remove_socket_before_start: boolean (default false)
- socket_mode: string mode
=> udp_socket supports: No optional field - protocol is udp
optional connect arg2:
=> udp usock
- usock: string unix socket path
- remove_socket_before_start: boolean (default false)
- socket_mode: string mode
return:
arg1: socket - (un)connected or bound (and listen)
return on error: nil, message[, errno]
== close ==
return:
arg1: true
return on error: nil, message[, errno]
=== listen socket ===
exist only for tcp -> serve
== accept ==
return:
arg1: socket (connected)
return on error: nil, message[, errno]
=== connected socket ===
== getpeername ==
return:
arg1: string ip / unix socket path
arg2: port
return on error: nil, message[, errno]
== receive ==
arg1: integer size
optional arg2: long polling - "BLOCK" (forever) or n seconds (0 < n)
return:
arg1: string read
arg2 (udp): -> sender address (required for send)
return on error: nil, message[, errno]
== send ==
arg1: string data
arg2 (unconnected udp): -> address (returned by receive) or address table
return:
arg1: integer size
return on error: nil, message[, errno]