Commit c07a03a3 authored by Paul Sokolovsky's avatar Paul Sokolovsky

examples/http_server.py: Introduce main() function.

Allows to re-run code if it was imported as a module (e.g., on bare-metal
ports).
parent aa3fb7b3
...@@ -10,33 +10,37 @@ HTTP/1.0 200 OK ...@@ -10,33 +10,37 @@ HTTP/1.0 200 OK
Hello #%d from MicroPython! Hello #%d from MicroPython!
""" """
s = socket.socket() def main(use_stream=False):
s = socket.socket()
ai = socket.getaddrinfo("127.0.0.1", 8080)
print("Bind address info:", ai) ai = socket.getaddrinfo("127.0.0.1", 8080)
addr = ai[0][4] print("Bind address info:", ai)
addr = ai[0][4]
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.listen(5) s.bind(addr)
print("Listening, connect your browser to http://127.0.0.1:8080/") s.listen(5)
print("Listening, connect your browser to http://127.0.0.1:8080/")
counter = 0
while True: counter = 0
res = s.accept() while True:
client_s = res[0] res = s.accept()
client_addr = res[1] client_s = res[0]
print("Client address:", client_addr) client_addr = res[1]
print("Client socket:", client_s) print("Client address:", client_addr)
print("Request:") print("Client socket:", client_s)
if 0: print("Request:")
# MicroPython socket objects support stream (aka file) interface if use_stream:
# directly. # MicroPython socket objects support stream (aka file) interface
print(client_s.read(4096)) # directly.
client_s.write(CONTENT % counter) print(client_s.read(4096))
else: client_s.write(CONTENT % counter)
print(client_s.recv(4096)) else:
client_s.send(CONTENT % counter) print(client_s.recv(4096))
client_s.close() client_s.send(CONTENT % counter)
counter += 1 client_s.close()
print() counter += 1
print()
main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment