Maison >développement back-end >Tutoriel Python >Utilisation simple des sockets TCP dans la programmation réseau Python

Utilisation simple des sockets TCP dans la programmation réseau Python

不言
不言original
2018-04-09 14:37:071899parcourir

Cet article présente principalement l'utilisation simple des sockets TCP dans la programmation réseau Python. Je le partagerai avec vous ici. Les amis qui en ont besoin peuvent s'y référer

Cet article décrit les sockets TCP dans la programmation réseau Python. avec des exemples. Je le partage avec vous pour votre référence. Les détails sont les suivants :

J'ai appris les réseaux informatiques le semestre dernier parce que je n'ai jamais appris Python auparavant, et je ne connais que peu Java, et C est difficile à maîtriser. écrire, donc je n'ai jamais vraiment implémenté la programmation d'interface TCP.

J'ai récemment appris Python, et l'utiliser pour écrire des sockets est très pratique et simple, donc bien sûr, je dois l'essayer.

Ce qui suit est une introduction au programme TCP le plus simple basé sur le code. Le client saisit les données et les envoie au serveur. Le serveur ajoute du temps et les renvoie au client


#!/usr/bin/python
'test TCP server'
from socket import *  #套接字所需要的模块
from time import ctime  #时间模块
HOST = ''  #主机名,为空,表示可以绑定在任何有效的地址上。
PORT = 21567  #随机选的可用端口
BUFSIZ = 1024  #发送数据的缓冲区
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)  #第一个参数是socket_family,此处用常用的AF_INET,第二个参数是流套接字,即创建的是tcp
tcpSerSock.bind(ADDR)  #套接字与地址绑定
tcpSerSock.listen(5)  #开始监听,参数表示允许的最大连接数
while True:
  print 'waiting for connection...'
  tcpCliSock, addr = tcpSerSock.accept()  #打开大门等待客人,accept返回一个元组(connection,address)。第一个元素是新的socket对象,服务器必须通过它与客户通信;第二个是客户的地址。
  print '...connected from:',addr
  while True:
    data = tcpCliSock.recv(BUFSIZ)  #洗耳恭听,把客人的话记录到data中
    if not data:  #客人话说完了,送客
      break
    tcpCliSock.send('[%s] %s' %(ctime(), data))  #发送当前时间,以及数据给客人
  tcpCliSock.close()  #送客,关闭与该客人通信的套接字
tcpSerSock.close()  #因为上面是死循环,此处不是必须的,只是提醒大家离开的时候务必要关门!


Deux sockets sont utilisés ci-dessus. Le premier tcpSerSock est appelé le socket de bienvenue, et le second tcpCliSock est le socket réellement responsable de la communication avec le client. L'avantage est qu'un serveur peut recevoir plusieurs invités en même temps.

Voici le code client, qui est très simple :


#!/usr/bin/python
'test tcp client'
from socket import *
HOST = 'localhost'  #因为我是在同一台机器上运行,所以是localhost,不同主机的话,此处需要改成服务器地址
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)  #客户端只需要一个套接字
tcpCliSock.connect(ADDR)  #发起连接
while True:
  data = raw_input('>')
  tcpCliSock.send(data)  #发送数据
  if not data:
    break
  data = tcpCliSock.recv(BUFSIZ)  #接收数据
  print data
tcpCliSock.close()
Recommandations associées :


Python Introduction à la méthode d'écriture de base de la fonction de robot d'exploration Web,

Programmation réseau Python

Résumé des fonctions couramment utilisées dans la programmation réseau Python

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