Serveur De Communication Client Python
Serveur
import socket
import sys
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host= 'VAC01.VACLab.com'
port=int(2000)
s.bind((host,port))
s.listen(1)
conn,addr =s.accept()
data=s.recv(100000)
s.close
CLIENT
import socket
import sys
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host="VAC01.VACLab.com"
port=int(2000)
s.connect((host,port))
s.send(str.encode(sys.argv[1]))
s.close()
Je veux le serveur pour recevoir les données que le client envoie.
Je reçois le message d'erreur suivant lorsque j'essaie cette
Côté CLIENT
Traceback (most recent call last):
Fichier "Client.py", à la ligne 21, dans
s.envoyer(sys.argv[1])
TypeError: 'str' ne prend pas en charge la mémoire tampon d'interface
Côté Serveur
Fichier "Listener.py", à la ligne 23, dans
données=s.recv(100000)
socket.erreur: [Errno 10057] Une demande pour envoyer ou recevoir des données a été rejetée bec
ause de la socket n'est pas connecté et (lors de l'envoi sur un socket datagramme à l'aide d'un
sendto appel) aucune adresse n'a été fourni
Je pense que vous pouvez avoir à convertir le
Dois-je faire ce str.coder(sys.argv[1]) ?? je l'ai fait ,les erreurs ont cessé, mais les données ne sont pas les transférer.
Êtes-vous toujours des problèmes?
str
à bytes
.Dois-je faire ce str.coder(sys.argv[1]) ?? je l'ai fait ,les erreurs ont cessé, mais les données ne sont pas les transférer.
Êtes-vous toujours des problèmes?
OriginalL'auteur Vinod K | 2012-04-04
Vous devez vous connecter pour publier un commentaire.
Dans le serveur, vous devez utiliser la écoute prise à recevoir des données. Il est seulement utilisé pour accepter de nouvelles connexions.
changement:
mais leur sont
recv()
etsend()
méthodes sursocket
objet.OriginalL'auteur Some programmer dude
Votre ligne
s.send
s'attend à recevoir un objet de flux de données. Vous êtes en lui donnant une chaîne de caractères. Enveloppez votre chaîne avec BytesIO.PAS d'utilisation
BytesIO
. Aller le chercher dans les docs.OriginalL'auteur Marcin
La version de Python que vous utilisez? Le message d'erreur, je suppose que vous êtes involontairement à l'aide de Python3. Vous pourriez essayer votre programme avec Python2 et il doit être fine.
Vinod - Essayer avec Python2 puis d'en connaître la différence.
OriginalL'auteur Senthil Kumaran
essayer de changer le socket client:
OriginalL'auteur Johanna