socket.erreur: [Errno 111] lors de la connexion à un socket

J'étais en train d'écrire un code où un client se connecte au serveur sur un numéro de port par défaut, le serveur envoie ensuite un autre numéro de port pour le client. Le client se connecte maintenant à le nouveau numéro de port.

Client:

import socket
import sys
import os
import signal
import time
s = socket.socket()
s.connect(("127.0.0.1", 6667))
line = s.recv(1024)
if line.strip():
    port = int(line)
    s.close()
    soc = socket.socket()
    soc.connect(("127.0.0.1", port))
    print soc.recv(1024)
    soc.close()
else:
    s.close()

Serveur:

import socket
import sys
import os
import signal
import time
port = 7777
s = socket.socket()
s.bind(("127.0.0.1", 6667))
s.listen(0)
sc, address = s.accept()
print address
sc.send(str(port))
sc.close()
s.close()
sock = socket.socket()
sock.bind(("127.0.0.1", port))
soc, addr = sock.accept()
print addr
soc.send("Success")
soc.close()
sock.close()

Lorsque j'exécute ce code, j'obtiens des erreurs suivantes sur les côtés client et serveur.

Serveur:

('127.0.0.1', 36282)
Traceback (most recent call last):
  File "server.py", line 17, in <module>
    soc, addr = sock.accept()
  File "/usr/lib/python2.7/socket.py", line 202, in accept
    sock, addr = self._sock.accept()
socket.error: [Errno 22] Invalid argument

Client:

Traceback (most recent call last):
  File "client.py", line 13, in <module>
    soc.connect(("127.0.0.1", port))
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused

Quelqu'un peut-il m'expliquer la raison de ces erreurs et de fournir une solution pour ces erreurs.

Vous semblent manquer sock.listen(0) suite à votre appel à sock.bind(("127.0.0.1", port)). Également prendre en compte ce qui se passerait si votre client est envoyé à un numéro de port (et tente de se connecter) avant que le serveur démarre à l'écoute pour les connexions.
^ le travail pour moi. Regardez aussi pour vos noms de variable... s, sc, sock... surtout si vous allez poster ici.
Pourquoi ne pas faire un aswer?
Michael Petch: Merci ça a fonctionné. Je suis nouveau sur le socket de programmation, ce qui a aidé.

OriginalL'auteur dynamo | 2014-10-25