net FAQ
net FAQ
What does net.listen return?
returns different handles according to type:
| type | return type | public field | public method |
|---|---|---|---|
| web | WebServer | addr、type | close() |
| tcp | TcpServer | addr、type | close() |
| udp | UdpSocket | addr、type | send()、close() |
| ws | WsServer | addr、type | close() |
addr is the actual listening address, type is the service type string, close() Used to close a service or socket.
What does net.connect return?
returns different connection handles according to type:
| type | return type | field | common methods |
|---|---|---|---|
| tcp | TcpClient | addr、type | write()、send()、read()、close() |
| udp | UdpSocket | addr、type | send()、close() |
| ws | WsSocket | addr、type | send()、write()、close()、on_message()、on_close()、on_error() |
TCP and UDP use host, port to configure the connection target; WebSocket uses url to configure the complete connection address.
Callback field names
event callbacks uniformly use snake_case: on_connect, on_message, on_close, on_error.
Port occupation
bind will throw an error when the port is occupied. Development tests can use 127.0.0.1:0 to let the operating system allocate free ports.
What happens when the queue is full
TCP, UDP, and WebSocket background event queues have a fixed upper limit, the default is 4096. When the queue is full, it will not occupy unlimited memory: TCP and WebSocket will close the corresponding connection, and UDP will discard the current message. The number of occurrences can be viewed via BT.stats().net.event_queue_rejected.
Error message
User-visible errors of TCP, UDP, and WebSocket will try to use a unified Chinese format. Common types include port occupied, insufficient permissions, address unavailable, connection refused, connection reset by peer, handshake failure, write queue full, and message size exceeding upper limit.
Stress test script
net-stress-tcp-server.bt / net-stress-tcp-client.bt, net-stress-udp-server.bt / net-stress-udp-client.bt, net-stress-ws-server.bt / net-stress-ws-client.bt are provided under examples/. Start the corresponding server first, and then start the client. When you need to push down resource boundaries, set BT_NET_EVENT_QUEUE, BT_NET_WRITE_QUEUE, or BT_NET_MESSAGE_LIMIT before starting the process.
How to receive binary messages
After setting binary: true in the TCP, UDP, and WebSocket listening configuration, the message parameters of the on_message callback will return Bytes. TCP client synchronous reading can use read_bytes().