Intenta entender el código correctamente antes de utilizarlo a tu proyecto y si tdeseas aportar algo puedes dejarlo en los comentarios.
Solución:
El problema está en la dirección de tu cliente:
SERVER_IP = '127.0.0.1'
Se está conectando a la máquina local y enviando datos, mientras que su servidor está sentado en una IP diferente. Debe conectarse a la IP del servidor o al nombre de host.
Puede verificar esto haciendo que el cliente se conecte primero (y falle si no puede)
...
import time
mySocket = socket( AF_INET, SOCK_DGRAM )
mySocket.connect((SERVER_IP,PORT_NUMBER))
while True:
mySocket.send('cool')
time.sleep(.5)
Actualizar desde los comentarios
Debido a que está en una conexión wifi, eso implica que ambas máquinas están en la red local. Debe encontrar la dirección IP de LAN del servidor para especificarlo como destino.
Enfoque de línea de comandos para encontrar su IP
- OSX/Linux:
ifconfig
- Ventanas:
ipconfig /all
Este programa se utiliza para enviar “letras pequeñas string” del cliente y obtener “letras mayúsculas” del servidor
Lado del servidor
import socket
def Main():
host = '192.168.0.12' #Server ip
port = 4000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
print("Server Started")
while True:
data, addr = s.recvfrom(1024)
data = data.decode('utf-8')
print("Message from: " + str(addr))
print("From connected user: " + data)
data = data.upper()
print("Sending: " + data)
s.sendto(data.encode('utf-8'), addr)
c.close()
if __name__=='__main__':
Main()
Lado del cliente
import socket
def Main():
host='192.168.0.13' #client ip
port = 4005
server = ('192.168.0.12', 4000)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host,port))
message = input("-> ")
while message !='q':
s.sendto(message.encode('utf-8'), server)
data, addr = s.recvfrom(1024)
data = data.decode('utf-8')
print("Received from server: " + data)
message = input("-> ")
s.close()
if __name__=='__main__':
Main()
Si te ha resultado provechoso este post, sería de mucha ayuda si lo compartes con más seniors así nos ayudas a difundir este contenido.