Hola.
Veran, estoy tratando de hacer un chat muy, muy básico, ya que es la primera vez que hago algo asi.
El problema es que al querer crear un socket se crea una captura de panttalla de la terminal.
Les dejo el código:
#!usr/bin/env python
try:
import socket
contacto=raw_input("""Introduce el nombre del contacto""")
print """Durante la conversacion, escribe salir para cerrar el chat"""
while true:
sersoc=socket.socket()
sersoc.bind((contacto,9998))
sersoc.listen(1)
clisoc, (host_c, puerto_c)=sersoc.accept()
mensajerec=sersoc.recv(2048)
mensajeen=raw_input('escribe tu mensaje:')
false if mensajeen==salir
sersoc.send(mensajeen)
print mensajerec
except:
print """Se ha producido un error y no se xk es, no me he estudiado los
tipos de excepciones, abre y cierra el chat"""
raw_input('pulsa enter para salir')
y otro programa similar.
Saludos y gracias de antemano.
PD:Uso Ubuntu 12.04
Ese false if, me suena muy mal :S, prueba con esto a ver:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import socket
contacto=raw_input("""Introduce el nombre del contacto""")
print """Durante la conversacion, escribe salir para cerrar el chat"""
x = True
while x:
sersoc=socket.socket()
sersoc.bind((contacto,9999))
sersoc.listen(1)
clisoc, (host_c, puerto_c)=sersoc.accept()
mensajerec=sersoc.recv(2048)
mensajeen=raw_input('escribe tu mensaje:')
if mensajeen == "salir":
x = False
sersoc.send(mensajeen)
print mensajerec
De todas formas no puedes hacer un chat únicamente con un archivo, deberás crear uno para el servidor y otro para el cliente, leete ésto:
http://mundogeek.net/archivos/2008/04/12/sockets-en-python/
Bueno, con tu metodo va mejor, pero sigue sin funcionar.Me dice:
Citar
Traceback (most recent call last):
File "/home/yo/Escritorio/chatrunex", line 11, in <module>
sersoc.bind((contacto,9999))
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.gaierror: [Errno -5] No address associated with hostname
Gracias de todas formas ;D
Cita de: daniyo en 12 Mayo 2012, 21:01 PM
Bueno, con tu metodo va mejor, pero sigue sin funcionar.Me dice:Gracias de todas formas ;D
¿Qué hostname estás usando? yo lo probé con Localhost y funcionaba :), pero no llegaba a la petición de escribe tu mensaje, no sé porqué :S.
Un saludo :)