documentation python lecture HOWTO de programmation de socket

https://docs.python.org/ja/3/howto/sockets.html C'est un mémo quand je lis ceci. Puisqu'il s'agit d'un vidage du cerveau lors de la lecture, il est recommandé à ceux qui veulent simplement connaître le contenu de lire directement le document. python3.8.2

Pourquoi lire la documentation

――Je veux lire le document ici et connaître les fonctions qui sont réellement utiles à utiliser sans le savoir. ―― Cela fait environ 8 ans que j'ai commencé à utiliser python, mais je le fais dans une atmosphère, donc il y a encore des fonctionnalités que je ne connais pas. ――J'utilise flask ・ django et zmq occasionnellement, mais j'ai vécu en détournant les yeux de la programmation interne du socket. «Quoi qu'il en soit, je veux savoir ce que fait une prise.

Aperçu

Vous devriez pouvoir obtenir suffisamment d'informations pour pouvoir l'utiliser sans gêne

Et cela

Note

histoire

--Socket a été inventé par Berkeley dans le cadre de BSD Unix et est devenu très populaire

Créer une socket

--Il existe des sockets respectivement côté client et côté serveur. Comme c'est la même chose avec zmq, il semble que l'interface sera consciente du niveau de socket. ――Alors lisez en imaginant avec zmq

client side

client_socket.py


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("qiita.com", 80))

seulement ça. Facile

server side

server_side.py


#Créer une socket serveur
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind((socket.gethostname(), 80))
serversocket.listen(5)

# serving
while True:
  clientsocket, address = serversocket.accept()
  # threaded server
  ct = client_thread(clientsocket)
  ct.run()

C'est un peu plus, mais c'est assez simple.

--Dans la première ligne, le nom de la variable est serversocket, mais ce que vous faites est exactement le même que clientsocket.

Exemple de socket

――J'explique avec un exemple plus concret

Données binaires

Déconnecter

Prise non bloquante

--Non-bloquant avec socket.setblocking (0)

la mise en oeuvre

J'ai jeté un coup d'œil à l'implémentation car c'était un gros problème https://github.com/python/cpython/blob/3.8/Lib/socket.py#L213 --Si vous l'utilisez avec avec la syntaxe, il semble vous appeler à fermer lorsque vous quittez le contexte

Impressions

«Je pense qu'il vaut mieux regarder autrement que INET et STREAM pour comprendre plus profondément. «Je ne l'utiliserai pas directement à l'avenir, mais j'ai réalisé que zmq est une assez bonne abstraction.

Recommended Posts

documentation python lecture HOWTO de programmation de socket
descripteur de lecture de document python HowTo
Note de programmation Python
[Note] Lecture de fichier ~ Python ~
3. 3. Programmation IA avec Python
Lecture du fichier pyc (Python 3.5.2)
Programmation compétitive avec python
Principes de base de Python: Socket, Dnspython
Programmation Python avec Excel
LEGO Mindstorms 51515 Programmation Python
Python3> chaîne de documentation / docstring
lecture de fichier externe python
[Python] Lecture de fichiers CSV
Programmation avec Python Flask
Programmation avec Python et Tkinter
Atelier de programmation Python - Super introduction Vol.3
Concours de programmation Atcoder Acing Python
Résumé de l'article sur la programmation Web Python
Paiza Python Primer 1 Apprendre la programmation
Lire des fichiers .txt avec Python
Programmation Python Machine Learning> Mots-clés
Atelier de programmation Python - Super introduction Vol.4
Une introduction à la programmation Python
Programmation réseau avec Python Scapy