03Python网络编程之客户端。
# 这个是客户端,下边我会写几个关于服务的单线程、多线程、异步服务端的脚本。 # 定义一个客户端,# 导入接收终端参数、随机数、socket、自己编写工具的模块。import argparse, random, socket, zen_utils # 定义客户端函数,入参为IP地址端口。def client(address, cause_error=False): # 定义一个套接字。 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务端。 sock.connect(address) # 将字典转换为列表, aphorisms = list(zen_utils.aphorisms) # 如果为真的话,那么就发送结束符。然后就结束。 if cause_error: sock.sendall(aphorisms[0][:-1]) return # 如果不为真的话,那么久就送三个问题, for aphorism in random.sample(aphorisms, 3): # 发送问题, sock.sendall(aphorism) # 然后打印出接收到的问题的答案。 print(aphorism, zen_utils.recv_until(sock, b'.')) # 关闭套接字。 sock.close() if __name__ == '__main__': parser = argparse.ArgumentParser(description='Example client') parser.add_argument('host', help='IP or hostname') parser.add_argument('-e', action='store_true', help='cause an error') parser.add_argument('-p', metavar='port', type=int, default=1060, help='TCP port (default 1060)') args = parser.parse_args() address = (args.host, args.p) client(address, args.e)
赞 (0)