はじめに
この実験では、Python におけるソケットプログラミングの世界を探り、活気に満ちたカーニバルの魔法のシナリオと、空想的なバルーンアーティストの奇妙なキャラクターをテーマにします。カーニバルは興奮とエネルギーに溢れ、空想的なバルーンアーティストは見事な作品で観客を魅了します。この実験の目的は、ソケットプログラミングの世界に突入し、カーニバルでの魅惑的なバルーンの作品のように、独自の魔法のネットワーク接続を織りなすことです。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Python におけるソケットプログラミングの世界を探り、活気に満ちたカーニバルの魔法のシナリオと、空想的なバルーンアーティストの奇妙なキャラクターをテーマにします。カーニバルは興奮とエネルギーに溢れ、空想的なバルーンアーティストは見事な作品で観客を魅了します。この実験の目的は、ソケットプログラミングの世界に突入し、カーニバルでの魅惑的なバルーンの作品のように、独自の魔法のネットワーク接続を織りなすことです。
このステップでは、Python のソケットプログラミングを使って簡単なクライアント - サーバ接続を作成します。クライアントとサーバは、基本的な相互作用で通信し、データを交換します。
~/project
ディレクトリに新しい Python ファイル server.py
を開きます。server.py
にサーバ側のコードを実装します。## server.py
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(1)
connection, address = server_socket.accept()
with connection:
print('Connected by', address)
while True:
data = connection.recv(1024)
if not data:
break
connection.sendall(data)
~/project
ディレクトリに別の Python ファイル client.py
を開きます。client.py
にクライアント側のコードを実装します。## client.py
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8888))
client_socket.sendall(b'Hello, server')
data = client_socket.recv(1024)
print('Received', repr(data))
これらの 2 つのファイルを同時に実行し、「Split Terminal」をクリックして実現します。端末には以下の情報が表示されるはずです:
labex:project/ $ python server.py
Connected by ('127.0.0.1', 40082)
labex:project/ $ python client.py
Received b'Hello, server'
このステップでは、データのシリアライゼーションと逆シリアライゼーションを行って送信することで、クライアントとサーバ間の通信を強化します。
server.py
のコードを変更して、データのシリアライゼーションと逆シリアライゼーションを含めます。## server.py
import socket
import pickle
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(1)
connection, address = server_socket.accept()
with connection:
print('Connected by', address)
while True:
data = connection.recv(1024)
if not data:
break
deserialized_data = pickle.loads(data)
processed_data = deserialized_data.upper()
connection.sendall(processed_data.encode())
client.py
のコードを変更して、データのシリアライゼーションと逆シリアライゼーションを含めます。## client.py
import socket
import pickle
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8888))
data_to_send = pickle.dumps('Hello, server')
client_socket.sendall(data_to_send)
received_data = client_socket.recv(1024)
print('Received', received_data.decode())
これらの 2 つのファイルを同時に実行し、「Split Terminal」をクリックして実現します。端末には以下の情報が表示されるはずです:
labex:project/ $ python server.py
Connected by ('127.0.0.1', 40082)
labex:project/ $ python client.py
Received HELLO, SERVER
この実験では、魔法のカーニバルの雰囲気と空想的なバルーンアーティストの作品からインスピレーションを得て、Python のソケットプログラミングの魅力的な世界に深く突き入りました。クライアント - サーバ接続の作成、データシリアライゼーションによる通信の強化などの手順を通じて、没入型で教育的な体験を提供し、ソケットプログラミングの技術を習得し、それが織りなす不思議な接続を楽しんでもらうことを目指しました。