5.7 KiB
net Module
Constants
net.TCP
, net.UDP
net.createConnection()
Creates a client.
Syntax
net.createConnection(type, secure)
Parameters
type
net.TCP
ornet.UDP
secure
1 for encrypted, 0 for plain
Returns
net.socket sub module
Example
net.createConnection(net.UDP, 0)
See also
net.createServer()
Creates a server.
Syntax
net.createServer(type, timeout)
Parameters
type
net.TCP
ornet.UDP
timeout
for a TCP server timeout is 1~28'800 seconds (for an inactive client to be disconnected)
Returns
net.server sub module
Example
net.createServer(net.TCP, 30) -- 30s timeout
See also
net.server Module
net.server:close()
Closes the server.
Syntax
net.server.close()
Parameters
none
Returns
nil
Example
-- creates a server
sv = net.createServer(net.TCP, 30)
-- closes the server
sv:close()
See also
net.server:listen()
Listen on port from IP address.
Syntax
net.server.listen(port,[ip],function(net.socket))
Parameters
port
port numberip
IP address string, can be omittedfunction(net.socket)
callback function, pass to caller function as param if a connection is created successfully
Returns
nil
Example
-- 30s time out for a inactive client
sv = net.createServer(net.TCP, 30)
-- server listens on 80, if data received, print data to console and send "hello world" back to caller
sv:listen(80, function(c)
c:on("receive", function(c, pl)
print(pl)
end)
c:send("hello world")
end)
See also
net.socket Module
net.socket:close()
Closes socket.
Syntax
close()
Parameters
none
Returns
nil
See also
net.socket:connect()
Connect to a remote server.
Syntax
connect(port, ip|domain)
Parameters
port
port numberip
IP address or domain name string
Returns
nil
See also
net.socket:dns()
Provides DNS resolution for a hostname.
Syntax
dns(domain, function(net.socket, ip))
Parameters
domain
domain namefunction(net.socket, ip)
callback function. The first parameter is the socket, the second parameter is the IP address as a string.
Returns
nil
Example
sk = net.createConnection(net.TCP, 0)
sk:dns("www.nodemcu.com", function(conn, ip) print(ip) end)
sk = nil
See also
net.socket:on()
Register callback functions for specific events.
Syntax
on(event, function())
Parameters
event
string, which can be "connection", "reconnection", "disconnection", "receive" or "sent"function(net.socket[, string])
callback function. The first parameter is the socket. If event is "receive", the second parameter is the received data as string.
Returns
nil
Example
sk = net.createConnection(net.TCP, 0)
sk:on("receive", function(sck, c) print(c) end )
sk:connect(80,"192.168.0.66")
sk:on("connection", function(sck,c)
-- Wait for connection before sending.
sk:send("GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")
end)
See also
net.socket:send()
Sends data to server.
Syntax
send(string, function(sent))
Parameters
string
data in string which will be sent to serverfunction(sent)
callback function for sending string
Returns
nil
Note
Multiple consecutive send()
calls aren't guaranteed to work (and often don't) as network requests are treated as separate tasks by the SDK. Instead, subscribe to the "sent" event on the socket and send additional data (or close) in that callback. See #730 for an example and explanation.
See also
net.dns Module
net.dns.getdnsserver()
Gets the IP address of the DNS server used to resolve hostnames.
Syntax
net.dns.getdnsserver(dns_index)
Parameters
dns_index which DNS server to get (range 0~1)
Returns
IP address (string) of DNS server
Example
print(net.dns.getdnsserver(0)) -- 208.67.222.222
print(net.dns.getdnsserver(1)) -- nil
net.dns.setdnsserver("8.8.8.8", 0)
net.dns.setdnsserver("192.168.1.252", 1)
print(net.dns.getdnsserver(0)) -- 8.8.8.8
print(net.dns.getdnsserver(1)) -- 192.168.1.252
See also
net.dns.resolve()
Resolve a hostname to an IP address. Doesn't require a socket like net.socket.dns()
.
Syntax
net.dns.resolve(host, function(ip))
Parameters
host
hostname to resolvefunction(sk, ip)
callback called when the name was resolved. Don't usesk
, it's a socket used internally to resolve the hostname.
Returns
nil
Example
net.dns.resolve("www.google.com", function(sk, ip)
if (ip == nil) then print("DNS fail!") else print(ip) end
end)
See also
net.dns.setdnsserver()
Sets the IP of the DNS server used to resolve hostnames. Default: resolver1.opendns.com (208.67.222.222). You can specify up to 2 DNS servers.
Syntax
net.dns.setdnsserver(dns_ip_addr, dns_index)
Parameters
dns_ip_addr
IP address of a DNS serverdns_index
which DNS server to set (range 0~1). Hence, it supports max. 2 servers.
Returns
nil