Maison  >  Article  >  développement back-end  >  Introduction détaillée à Python+Socket pour implémenter la fonction de chat à réponse automatique chinoise entre le client et le serveur basée sur le protocole TCP

Introduction détaillée à Python+Socket pour implémenter la fonction de chat à réponse automatique chinoise entre le client et le serveur basée sur le protocole TCP

巴扎黑
巴扎黑original
2017-09-02 13:10:511676parcourir

Cet article présente principalement Python+Socket pour implémenter la fonction de chat à réponse automatique chinoise entre le client et le serveur basée sur le protocole TCP. Il analyse les méthodes de fonctionnement et les précautions associées de Python+Socket pour implémenter le programme de chat TCP avec réponse automatique. fonction sous forme d'exemples., Les amis dans le besoin peuvent se référer à

Cet article décrit l'exemple de Python+Socket implémentant la fonction de chat à réponse automatique chinoise entre le client et le serveur basée sur le protocole TCP. Je le partage avec vous pour votre référence. Les détails sont les suivants :

[Plaintes]

Le code sur Internet tue des gens. concluante, et elle peut être remise en question.
Certains amis qui aiment les codes et aiment collecter des codes colleront et copieront les codes d'autres personnes lorsqu'ils les verront. Mais au moins tu peux essayer de l'exécuter, frère

[Texte]

Hier, j'ai modifié le programme de discussion C/S pour exécuter le protocole UDP, mais le protocole TCP ne fonctionne pas non. Diverses épreuves, divers pièges.

Après avoir effectué les modifications suivantes, cela fonctionne enfin :

1. Encoder et décoder respectivement les informations envoyées et reçues
2. La 10ème étape du client La liaison de ligne. est modifié pour se connecter (C'est vraiment un gros gouffre !!)

(Cet article est basé sur Windows 7 + python 3.4)

Le code complet est la suivante (tête garantie, je l'ai personnellement testé et c'est normal !) :

Serveur :


# tcp_server.py
'''服务器'''
from socket import *
from time import ctime
HOST = '' #主机地址
PORT = 23345 #端口号
BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
ADDR = (HOST, PORT) #链接地址
tcpSerSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
tcpSerSock.bind(ADDR) #绑定地址
tcpSerSock.listen(5) #最大连接数为5
while True: #无限循环
  print('尝试连接客户端。。。')
  tcpCliSock, addr = tcpSerSock.accept() #等待接受连接
  print('链接成功,客户端地址为:', addr)
  while True:
    data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
    if not data: break #如果data为空,则跳出循环
    print(data.decode())
    msg = '{} 服务器已接收 [自动回复]'.format(ctime())
    tcpCliSock.send(msg.encode())
  tcpCliSock.close() #关闭连接
tcpSerSock.close() #关闭服务器
Client :


# tcp_client.py
'''客户端'''
from socket import *
from time import ctime
HOST = 'localhost' #主机地址
PORT = 23345 #端口号
BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
ADDR = (HOST, PORT) #链接地址
tcpCliSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
#tcpCliSock.bind(ADDR) #绑定地址
tcpCliSock.connect(ADDR) #绑定地址
while True:
  msg = input('请输入:') #输入数据
  if not msg: break #如果 msg 为空,则跳出循环
  tcpCliSock.send(msg.encode())
  data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
  if not data: break #如果data为空,则跳出循环
  print(data.decode())

[Exécuter la capture d'écran]

Méthode expérimentale : exécutez d'abord le serveur, puis exécutez le client

Ensuite, vous pouvez discuter librement avec le serveur sur le client :

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!

Déclaration:
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