Sto cercando di imparare i socket TCP per il mio progetto. Li userò per trasferire file tra computer.
La combo del client server copiata da qualche tutorial funziona bene fino a quando l'ip che sto tentando di associare è 127.0.0.1
. Quando lo cambio in qualcosa di meno standard, come dice 127.0.0.123 OSX, che non posso associare a questo indirizzo:
socket.error: [Errno 49] Can't assign requested address
Non ho problemi con debian tough.
Codice server
#!/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()
Codice 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()