以下のpythonで書かれたTCPクライアントとTCPサーバのコードについて質問です。クライアントの方は理解できるんですけど、サーバのコードを理解する際、動きとか、理屈?とかがうまくつかめず、クライアントのコードと頭の中でごちゃごちゃになってしまいました。調べてみても詳しい解説があまりなく、ついにはどこがわからないのかもわからなくなってしまいました。
TCPの仕組みについては理解しています。
本当に困ってます。
この2つのコードを違いなんかも交えて詳しく解説してもらえると本当に助かります。
###TCPクライアント
# coding: utf-8 import socket target_host = "127.0.0.1" target_port = 9999 # ソケットオブジェクトの作成 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # サーバーへ接続 client.connect((target_host, target_port)) # データの送信 client.send(b"ABCDEF") # データの受信 response = client.recv(4096) print(response)
###TCPサーバ
# coding: utf-8 import socket import threading bind_ip = "127.0.0.1" bind_port = 9999 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((bind_ip, bind_port)) server.listen(5) print("[*] Listening on {0}:{1}".format(bind_ip, bind_port)) # クライアントからの接続を処理するスレッド def handle_client(client_socket): #クライアントからの接続を処理するスレッド request = client_socket.recv(1024) print("[*] Received: ", request) #パケットの返送 client_socket.send(b"ACK!") client_socket.close() while True: client, addr = server.accept() print("[*] Accepted connection from: {0}:{1}".format(addr[0], addr[1])) #受信データを処理するスレッドの起動 client_handler = threading.Thread(target=handle_client, args=(client, )) client_handler.start()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/06 14:11