Socket problems
Jonathon Sisson
sisson.j at gmail.com
Sun Jul 13 14:52:18 EDT 2008
SSL objects use "write", not "send".
You also need to change this:
self.sock.write('NICK %s\r\n') % self.nick
to this:
self.sock.write('NICK %s\r\n' % self.nick)
If you don't, the interpreter will bomb on trying to concatenate the
return value for "write" (an integer) with the string self.nick.
Hope this helps...
Jonathon
jjbutler88 at gmail.com wrote:
> I am trying to write a simple python IRC client, roughly following
> this guide: http://www.devshed.com/c/a/Python/Python-and-IRC/
>
> I have written some code, which uses the same commands as the guide,
> but I get this error:
> Traceback (most recent call last):
> File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
> python2.5/threading.py", line 486, in __bootstrap_inner
> self.run()
> File "pythonirc.py", line 31, in run
> self.sock.send('NICK %s\r\n') % self.nick
> AttributeError: send
>
> Here is my code so far:
> [code]
> #!/usr/bin/env python
>
> from socket import *
> from threading import Thread
> import sys
>
> class IRCBot(Thread):
> def __init__(self, host, room, nick, port=6667, ssl=0):
> Thread.__init__(self)
> self.host = host
> self.port = port
> self.ssl = ssl
> self.room = room
> self.nick = nick
> self.sock = socket(AF_INET, SOCK_STREAM)
>
> def run(self):
> print "Connecting..."
> try:
> self.sock.connect((self.host, self.port))
> except:
> print "Could not connect to %s" % self.host
> sys.exit(1)
> if self.ssl:
> try:
> self.sock = ssl(self.sock)
> except:
> print "Server does not suport SSL"
> sys.exit(1)
>
> self.sock.send('NICK %s\r\n') % self.nick
> self.sock.send('USER PyIRC PyIRC PyIRC :Python IRC\r\n')
> self.sock.send('JOIN #%s\r\n') % self.room
> while True:
> data = self.sock.recv(4096)
> if data.find('PING') != -1:
> self.sock.send('PONG' + data.split()[1]+'\r\n')
> print data
>
> def close(self):
> self.sock.send('PART #%s\r\n') % self.room
> self.sock.send('QUIT\r\n')
> self.sock.shutdown(SHIT_RDWR)
> self.sock.close()
>
> IRCBot('irc.psych0tik.net','hbh', 'pythonircclient',6697,1).start()
> [/code]
>
> Anyone know why it might be doing this? Config problem?
>
> Thanks in advance,
> Jon
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
>
More information about the Python-list
mailing list