• Domingo 22 de Diciembre de 2024, 10:30

Autor Tema:  sockets en Python  (Leído 1266 veces)

LLOS

  • Nuevo Miembro
  • *
  • Mensajes: 1
  • Nacionalidad: es
    • Ver Perfil
sockets en Python
« en: Domingo 13 de Junio de 2010, 11:01 »
0
Hola a todos,

He hecho el siguiente programa cliente servidor:

servidor.py
Código: Python
  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()
  38.  
  39.    
  40.  

cliente.py:
Código: Python
  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
  25.  
  26.  

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

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: sockets en Python
« Respuesta #1 en: Domingo 13 de Junio de 2010, 19:49 »
0
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.