Estoy tratando de aprender sockets TCP para mi proyecto. Los voy a usar para transferir archivos entre ordenadores.
El cliente de servidor de combo copiado de algún tutorial funciona bien la medida, ya que la ip que estoy tratando de bound 127.0.0.1
. Cuando lo cambio a nada menos estándar, como 127.0.0.123 OSX dice, que no se puede enlazar a esta dirección:socket.error: [Errno 49] Can't assign requested address
Yo no tengo ningún problema en debian difíciles.
El código del servidor
#!/usr/bin/env python
import socket
TCP_IP = '127.0.0.123'
TCP_PORT = 50050
BUFFER_SIZE = 1024 # Normally 1024, but we want fast response
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data
conn.send(data) # echo
conn.close()
Código de cliente:
#!/usr/bin/env python
import socket
TCP_IP = '127.0.0.123'
TCP_PORT = 50050
BUFFER_SIZE = 1024
MESSAGE = "message sent from client to server"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE)
s.close()