• Jueves 18 de Abril de 2024, 19:30

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - LLOS

Páginas: [1]
1
Python / sockets en Python
« en: Domingo 13 de Junio de 2010, 11:01 »
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!!!

Páginas: [1]