diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-04-01 20:53:23 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-04-01 20:53:23 +0300 |
commit | cf4b72bf13d41c9eacddc9df6f32b9cb02585d80 (patch) | |
tree | 2ea934f97960ee62883261e5e9399e6d899141a8 /examples/network | |
parent | b475327ffa24a95d9855b9ed38cdd8fe13487f4d (diff) | |
download | micropython-cf4b72bf13d41c9eacddc9df6f32b9cb02585d80.tar.gz micropython-cf4b72bf13d41c9eacddc9df6f32b9cb02585d80.zip |
examples: http_client.py, http_server.py aren't just unix, move to network/.
Diffstat (limited to 'examples/network')
-rw-r--r-- | examples/network/http_client.py | 32 | ||||
-rw-r--r-- | examples/network/http_server.py | 41 |
2 files changed, 73 insertions, 0 deletions
diff --git a/examples/network/http_client.py b/examples/network/http_client.py new file mode 100644 index 0000000000..f042bfeb83 --- /dev/null +++ b/examples/network/http_client.py @@ -0,0 +1,32 @@ +try: + import usocket as _socket +except: + import _socket + + +s = _socket.socket() + +if 1: + ai = _socket.getaddrinfo("google.com", 80) + print("Address infos:", ai) + addr = ai[0][4] +else: + # Deprecated ways to construct connection address + addr = _socket.sockaddr_in() + addr.sin_family = 2 + #addr.sin_addr = (0x0100 << 16) + 0x007f + #addr.sin_addr = (0x7f00 << 16) + 0x0001 + #addr.sin_addr = _socket.inet_aton("127.0.0.1") + addr.sin_addr = _socket.gethostbyname("google.com") + addr.sin_port = _socket.htons(80) + +print("Connect address:", addr) +s.connect(addr) + +if 0: + # MicroPython rawsocket module supports file interface directly + s.write("GET / HTTP/1.0\n\n") + print(s.readall()) +else: + s.send(b"GET / HTTP/1.0\n\n") + print(s.recv(4096)) diff --git a/examples/network/http_server.py b/examples/network/http_server.py new file mode 100644 index 0000000000..7affafcfd6 --- /dev/null +++ b/examples/network/http_server.py @@ -0,0 +1,41 @@ +try: + import usocket as socket +except: + import socket + + +CONTENT = """\ +HTTP/1.0 200 OK + +Hello #{} from MicroPython! +""" + +s = socket.socket() + +ai = socket.getaddrinfo("127.0.0.1", 8080) +print("Bind address info:", ai) +addr = ai[0][4] + +s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) +s.bind(addr) +s.listen(5) +print("Listening, connect your browser to http://127.0.0.1:8080/") + +counter = 0 +while True: + res = s.accept() + client_s = res[0] + client_addr = res[1] + print("Client address:", client_addr) + print("Client socket:", client_s) + print("Request:") + if 0: + # MicroPython rawsocket module supports file interface directly + print(client_s.read(4096)) + #print(client_s.readall()) + client_s.write(CONTENT.format(counter)) + else: + print(client_s.recv(4096)) + client_s.send(bytes(CONTENT.format(counter), "ascii")) + client_s.close() + counter += 1 |