Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2010, 04:26
llos
 
Fecha de Ingreso: junio-2010
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 0
sockets en Python

Hola a todos,

He hecho el siguiente programa cliente servidor:

servidor.py
Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2. import socket
  3.  
  4. s = socket.socket()
  5. s.bind(("xxxxxxx",9999))
  6. s.listen(10)
  7.  
  8. cliente1, addr = s.accept()
  9. print "Recibo conexion de "+str(addr[0]) + ": " + str(addr[1])
  10. cliente1.send("1")
  11. cliente2, addr1 = s.accept()
  12. print "Recibo conexion de "+str(addr1[0]) + ": " + str(addr1[1])
  13. cliente2.send("0")
  14.  
  15. c = 1
  16. cnt = 0
  17.  
  18. while True:
  19.   if c == 1:
  20.     recibido = cliente1.recv(1024)
  21.     cliente2.send(recibido)
  22.     c = 2
  23.   else:
  24.     recibido = cliente2.recv(1024)
  25.     cliente1.send(recibido)
  26.     c = 1
  27.   if recibido == "by":
  28.     cliente1.send("fin")
  29.     cliente2.send("fin")
  30.     break;
  31.   cliente1.send("seguir")
  32.   cliente2.send("seguir")
  33.  
  34. print "adios"
  35. cliente1.close()
  36. cliente2.close()
  37. s.close()

cliente.py:
Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2. import socket
  3.  
  4. s = socket.socket()
  5.  
  6. s.connect(("xxxxxxxxx",9998))
  7.  
  8. var = int(s.recv(1024))
  9. if var: print "Empiezas ha hablar"
  10. else: print "Esperate hasta que te hablen"
  11.  
  12. while True:
  13.   if var:
  14.     mensaje = raw_input("Mensage a enviar: ")
  15.     s.send(mensaje)
  16.     var = 0
  17.   else:
  18.     msg = s.recv(1024)
  19.     addr = "otro"
  20.     print "Mensage de "+addr+" "+msg
  21.     var = 1
  22.    
  23.   continuar = s.recv(1024)
  24.   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!!!