Divisé en client et serveur
# Programme serveur d' importation socket
IF __name__ == ' __main__ ' : # 1. Créer une prise (socket) objets Serv = socket.socket () # 2. Bind adresse d' informations Host = socket.gethostname () Port = 12345 Serv .bind ((hôte, port)) # 3. Ouvrez l' écoute serv.listen (5) # séquences nombre maximum d'attendre, vous pouvez attendre cinq, le sixième a été rejeté, généralement la valeur par défaut est 5 impression ( " moniteur est activé , .... attente de connexion " ) # 4. en attente de connexion du client le tout en 1. : Conn, adresse = serv.accept () # Renvoie l'objet connexion socket et l'adresse adresse du client, une structure tuple Imprimer ( " Adresse connexion:% S " % (str (adresse [0]))) msg = " Je suis un service, s'il vous plaît visitez " conn.send (msg .encode ( ' UTF. 8 ' )) serv.close ()
Ce que nous avons rencontré une erreur: un octets comme objet est requis
La solution:
la solution est très simple, il vous suffit de passer une fonction d'octets et encode python str deux types de conversion (), decode () peut être!
str par encode () méthode peut être codé comme spécifié en octets, à l'
inverse, si on lit le flux d'octets à partir du réseau ou d'un disque, les données sont lues octets. Bytes devrait devenir str, vous avez besoin d' une méthode decode ();
# Programme client
Importation Socket SI le __name__ == ' __main__ ' : client = socket.socket () # 1. Créez une connexion au serveur et l' hôte = socket.gethostname () Port = 12345 le client.connect ((hôte, port)) # recevoir moins de 1024 mots données de section MSG = client.recv (1024 ) client.close () Imprimer (msg.decode ( ' UTF. 8 ' ))
Ouvrez ensuite les deux bornes peuvent être testées