# 这个是客户端,下边我会写几个关于服务的单线程、多线程、异步服务端的脚本。
# 定义一个客户端,
# 导入接收终端参数、随机数、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)
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 »
03Python网络编程之客户端。