VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python入门教程 >
  • 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)

出处:https://www.cnblogs.com/cong12586/p/14077122.html

相关教程