AI Technology Community
9.4、簡単なTCPクライアントの作成
「TCPエコーサーバーの構築」のセクションを基に、データのやり取りを実現するために、クライアントが必要です。
このセクションでは、このようなクライアントを作成します。このクライアントは、先に紹介したサーバーと接続し、簡単なデータ列を送信し、サーバーからの返信データを読み取ります。
まず、socketオブジェクトを作成する必要があります。サーバー側と同様に、TCPを使用することを指定します。クライアントとサーバーのトランスポート層プロトコルは一致している必要があり、一方がTCPを使用し、他方がUDPを使用することはできません。
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
次に、connect()関数を使用してサーバーに接続します。この際、サーバーのIPアドレスとポート番号を指定する必要があります。これらの値はサーバー側と一致している必要があります。たとえば、サーバーが50007番ポートを使用している場合、クライアントも同じポートを指定する必要があります。
s.connect((HOST, PORT))
接続が成功すると、データの読み書きが可能になります。クライアントがデータを読むとは、サーバーから送信されたデータを受信することであり、クライアントがデータを書くとは、サーバーにデータを送信することです。データを読む際にも、バッファサイズを指定することができ、方法は次のとおりです。
s.sendall(b_data)
data = s.recv(1024)
使用が完了したら、close()関数を使用してsocketを閉じ、リソースを解放することができます。
s.close()
以下は、完全なコードです。
import socket HOST = '127.0.0.1' # サーバーアドレス PORT = 50007 # サーバーポート s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) # サーバーに接続 data = 'Hello, world' b_data = data.encode("utf-8") s.send(b_data) # データを送信 data = s.recv(1024) # 応答を受信 s.close() # 接続を閉じ、リソースを解放 print('Received: ', data)
サーバー側のコードを起動した後、クライアント側のコードを起動すると、次のように出力されます。
$ python echo-client1.py
Received: b'Hello, world':
クライアントが終了すると、サーバーも自動的に終了します。
5
item of content
初期のコンピュータネットワークも種類が豊富で、サポートされているプロトコルも多岐にわたっていました。時間の経過とともに、現在広く使用されているのはIPネットワークとなり、他のタイプのネットワークは次第に姿を消しました。現在、オフィス内のローカルエリアネットワークでもインターネットでも、基本的にはIPネットワークを使用しています。
この章では、Pythonのネットワークプログラミングに関する知識を読者に紹介します。具体的には、TCP/IPプロトコル、ソケットインターフェース、TCP/UDPクライアントおよびサーバーの構築方法などを含みます。
- 521hits
- 0replay
-
0like
- collect
- send report