2.8. WEB编程

2.8.1. 作为客户端与HTTP服务交互

通常使用 urllib.request 模块就够了.当然也是可以使用 requests 库的。

from urllib import request, parse

# Base URL being accessed
url = 'http://httpbin.org/get'

# Dictionary of query parameters (if any)
parms = {
   'name1' : 'value1',
   'name2' : 'value2'
}

# Encode the query string
querystring = parse.urlencode(parms)

# Make a GET request and read the response
u = request.urlopen(url+'?' + querystring)
resp = u.read()

2.8.2. 创建TCP服务器

from socketserver import BaseRequestHandler, TCPServer
class EchoHandler(BaseRequestHandler):
    def handle(self):
        print('Got connection from', self.client_address)
        while True:
            msg = self.request.recv(8192)
            if not msg:
                break
            self.request.send(msg)

if __name__ == '__main__':
    serv = TCPServer(('127.0.0.1', 20000), EchoHandler)
    serv.serve_forever()

2.8.3. 创建UDP服务器

2.8.4. 通过CIDR地址生成对应的IP地址集

In [7]: import ipaddress

In [8]: net = ipaddress.ip_network('123.45.67.64/27')

In [9]: net[0]
Out[9]: IPv4Address('123.45.67.64')

In [10]: net[10]
Out[10]: IPv4Address('123.45.67.74')

2.8.5. 通过XML-RPC实现简单的远程调用