ホームページ > バックエンド開発 > Python チュートリアル > TCPを使用してPythonでクライアントとサーバー間の会話を実装する方法

TCPを使用してPythonでクライアントとサーバー間の会話を実装する方法

WBOY
リリース: 2023-05-17 15:40:55
転載
1443 人が閲覧しました

TCP クライアント

TCP プロトコルを使用して継続的な会話を実装するクライアントのサンプル コード:

import socket
# 客户端配置
HOST = 'localhost'
PORT = 12345
# 创建TCP套接字并连接服务器
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
while True:
    # 获取用户输入
    message = input("请输入要发送的消息:")
    # 发送消息到服务器
    client_socket.sendall(message.encode("utf-8"))
    # 接收服务器传回的消息
    data = client_socket.recv(1024)
    print(f"收到来自服务器的消息:{data.decode('utf-8')}")
# 关闭套接字
client_socket.close()
ログイン後にコピー

この例では、最初に TCP ソケットを作成し、connect を使用します。 ()関数は、指定されたサーバー アドレスとポートに接続します。次に、ユーザー入力を含むメッセージをサーバーに継続的に送信し、サーバーが応答して結果を表示するのを待ちます。 TCP は接続指向のプロトコルであるため、接続上のメッセージの信頼性と順序性を保証できることに注意してください。

最後に、close() 関数を使用してソケットを閉じます。

TCP プロトコルを使用する場合、サーバーも対応する通信に TCP プロトコルを使用する必要があることに注意してください。

TCP サーバー

以下は、TCP プロトコルを使用して継続的な対話を実現するサーバーのコード例です。

import socket
# 服务器配置
HOST = 'localhost'
PORT = 12345
# 创建TCP套接字并绑定到地址和端口
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
# 监听连接
server_socket.listen()
# 接受连接并与客户端建立通信
client_socket, client_address = server_socket.accept()
print(f"与客户端 {client_address} 建立连接。")
while True:
    # 接收客户端传来的消息
    data = client_socket.recv(1024)
    print(f"来自{client_address}的消息:{data.decode('utf-8')}")
    if not data: # 如果客户端关闭了连接,则退出循环 
        break
    # 获取用户输入
    message = input("请输入要发送的消息:")
    # 发送消息到客户端
    client_socket.sendall(message.encode("uft-8"))
# 关闭套接字
client_socket.close()
server_socket.close()
ログイン後にコピー

この例では、最初に TCP ソケット インターフェイスを作成し、指定されたアドレスとポートにバインドします。次に、listen() 関数を通じてクライアント接続リクエストのリッスンを開始します。

クライアントが接続すると、accept() 関数を呼び出して接続を受け入れ、クライアントのソケットとアドレスを返します。その後、ループを通じてデータの送受信を続けることで、継続的な会話が可能になります。

TCP は接続指向のプロトコルであるため、この接続を通じてメッセージの信頼性と順序を保証できることに注意してください。最後に、close() 関数を使用してソケットを閉じます。

実際の開発では、複数のクライアント接続を同時に処理できるようにするために、接続ごとに新しいスレッドまたはプロセスを作成する必要がある場合があることに注意してください。

以上がTCPを使用してPythonでクライアントとサーバー間の会話を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート