socket-client, socket-server examples now run on both Micro- and C-Python.

This commit is contained in:
Paul Sokolovsky 2014-01-20 20:35:18 +02:00
parent a80ff04fe7
commit d991da7263
2 changed files with 42 additions and 20 deletions

View file

@ -1,22 +1,32 @@
mod = rawsocket try:
s = mod.socket() import rawsocket as _socket
except:
import _socket
s = _socket.socket()
if 1: if 1:
ai = mod.getaddrinfo("google.com", 80) ai = _socket.getaddrinfo("google.com", 80)
print("Address infos:", ai) print("Address infos:", ai)
addr = ai[0][4] addr = ai[0][4]
else: else:
# Deprecated way to construct connection address # Deprecated ways to construct connection address
addr = mod.sockaddr_in() addr = _socket.sockaddr_in()
addr.sin_family = 2 addr.sin_family = 2
#addr.sin_addr = (0x0100 << 16) + 0x007f #addr.sin_addr = (0x0100 << 16) + 0x007f
#addr.sin_addr = (0x7f00 << 16) + 0x0001 #addr.sin_addr = (0x7f00 << 16) + 0x0001
#addr.sin_addr = mod.inet_aton("127.0.0.1") #addr.sin_addr = _socket.inet_aton("127.0.0.1")
addr.sin_addr = mod.gethostbyname("google.com") addr.sin_addr = _socket.gethostbyname("google.com")
addr.sin_port = mod.htons(80) addr.sin_port = _socket.htons(80)
print("Connect address:", addr) print("Connect address:", addr)
s.connect(addr) s.connect(addr)
s.write("GET / HTTP/1.0\n\n") if 0:
print(s.readall()) # 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))

View file

@ -1,7 +1,18 @@
mod = rawsocket try:
s = mod.socket() import rawsocket as socket
except:
import socket
ai = mod.getaddrinfo("127.0.0.1", 8080)
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) print("Bind address info:", ai)
addr = ai[0][4] addr = ai[0][4]
@ -17,12 +28,13 @@ while True:
print("Client address:", client_addr) print("Client address:", client_addr)
print("Client socket:", client_s) print("Client socket:", client_s)
print("Request:") print("Request:")
print(client_s.read(4096)) if 0:
#print(client_s.readall()) # MicroPython rawsocket module supports file interface directly
client_s.write("""\ print(client_s.read(4096))
HTTP/1.0 200 OK #print(client_s.readall())
client_s.write(CONTENT.format(counter))
Hello #{} from MicroPython! else:
""".format(counter)) print(client_s.recv(4096))
client_s.send(bytes(CONTENT.format(counter), "ascii"))
client_s.close() client_s.close()
counter += 1 counter += 1