Estoy intentando aprender sockets TCP para mi proyecto. Los usaré para transferir archivos entre computadoras.
El combo del cliente del servidor copiado de algún tutorial funciona bien siempre que la ip que estoy intentando enlazar sea 127.0.0.1
. Cuando lo cambio a algo menos estándar, como 127.0.0.123 OSX dice, no puedo enlazar a esta dirección:
socket.error: [Errno 49] Can't assign requested address
No tengo problemas en Debian Hard.
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 del 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()