Programación Web y Scripting > Python
sockets en Python
(1/1)
LLOS:
Hola a todos,
He hecho el siguiente programa cliente servidor:
servidor.py
--- Código: Python ---# -*- coding: utf-8 -*-import socket s = socket.socket()s.bind(("xxxxxxx",9999))s.listen(10) cliente1, addr = s.accept()print "Recibo conexion de "+str(addr[0]) + ": " + str(addr[1])cliente1.send("1")cliente2, addr1 = s.accept()print "Recibo conexion de "+str(addr1[0]) + ": " + str(addr1[1])cliente2.send("0") c = 1cnt = 0 while True: if c == 1: recibido = cliente1.recv(1024) cliente2.send(recibido) c = 2 else: recibido = cliente2.recv(1024) cliente1.send(recibido) c = 1 if recibido == "by": cliente1.send("fin") cliente2.send("fin") break; cliente1.send("seguir") cliente2.send("seguir") print "adios"cliente1.close()cliente2.close()s.close()
cliente.py:
--- Código: Python ---# -*- coding: utf-8 -*-import socket s = socket.socket() s.connect(("xxxxxxxxx",9998)) var = int(s.recv(1024))if var: print "Empiezas ha hablar"else: print "Esperate hasta que te hablen" while True: if var: mensaje = raw_input("Mensage a enviar: ") s.send(mensaje) var = 0 else: msg = s.recv(1024) addr = "otro" print "Mensage de "+addr+" "+msg var = 1 continuar = s.recv(1024) if (continuar == "fin"): break
El programa en si funciona desde diferentes ordenadores, pero dentro de mi red es decir utilizando mi internet, pero desde ordenadores con diferente internet no...
a que puede ser debido esto? inicialmente creia que era pq el puerto 9998 de mi router no estaba abierto, pero tampoco es que tenga conocimiento sobre redes asi que no se.
Donde pone xxxxx pongo la direccion que me sale cuando pongo en la consola de linux ifconfig en el aparatado inet,y cuando estoy en windows pongo ipconfig y lo que me sale en direccion IPv4
Alguien me podria decir como proceder para que me funcionara de ordenador a ordenaror, sin el mismo internet?
Saludos!!!
Extrax:
Buenas
Tengo la misma duda que tu, por lo que se, asi se crea un server y cliente LAN, en una red local, es decir en lo que es "tu internet", por lo tanto, no es valido para otros ordenadores que no esten conectados con tu internet. He buscado tambien mucha informacion sobre sockets, pero solo para redes locales. Aun asi sigo buscando, si encuentro algo enseguida lo posteare, y si alguien sabe algo que por favor nos ayude.
Navegación
Ir a la versión completa