Maison > développement back-end > Tutoriel Python > Comment utiliser TCP pour implémenter une conversation entre client et serveur en python

Comment utiliser TCP pour implémenter une conversation entre client et serveur en python

WBOY
Libérer: 2023-05-17 15:40:55
avant
1443 Les gens l'ont consulté

Client TCP

Un exemple de code pour un client qui utilise le protocole TCP pour implémenter des conversations continues :

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()
Copier après la connexion

Dans cet exemple, nous créons d'abord un socket TCP et utilisons connect() La fonction se connecte à l'adresse et le port du serveur spécifiés. Nous envoyons ensuite continuellement des messages au serveur avec la saisie de l'utilisateur et attendons que le serveur réponde et affiche ses résultats. Notez que puisque TCP est un protocole orienté connexion, nous pouvons garantir la fiabilité et l'ordre des messages sur la connexion. 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()
Copier après la connexion

在这个示例中,我们首先创建了一个TCP套接字,并将其绑定到指定的地址和端口。然后,我们通过listen()函数开始监听客户端连接请求。

当有客户端连接时,我们调用accept()函数接受连接并返回客户端套接字和地址。然后,我们通过循环不断接收和发送数据,从而实现了可连续对话的功能。

请注意,由于TCP是面向连接的协议,因此我们可以通过该连接保证消息的可靠性和顺序性。最后,我们通过close()

Enfin, nous fermons le socket via la fonction close().

Il convient de noter que lorsque nous utilisons le protocole TCP, nous devons nous assurer que le serveur utilise également le protocole TCP pour la communication correspondante. 🎜🎜Serveur TCP🎜🎜Ce qui suit est un exemple de code côté serveur qui utilise le protocole TCP pour implémenter des conversations continues : 🎜rrreee🎜Dans cet exemple, nous créons d'abord un socket TCP et le lions à l'adresse et au port spécifiés. Ensuite, nous commençons à écouter les demandes de connexion des clients via la fonction listen(). 🎜🎜Lorsqu'il y a une connexion client, nous appelons la fonction accept() pour accepter la connexion et renvoyer le socket et l'adresse client. Nous continuons ensuite à recevoir et à envoyer des données via une boucle, permettant ainsi une conversation continue. 🎜🎜Veuillez noter que TCP étant un protocole orienté connexion, nous pouvons garantir la fiabilité et l'ordre des messages sur la connexion. Enfin, nous fermons le socket via la fonction close(). 🎜🎜Il convient de noter que dans le développement réel, nous devrons peut-être créer un nouveau thread ou processus pour chaque connexion afin de pouvoir gérer plusieurs connexions client en même temps. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal