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)
相關文章
相關標籤/搜索