[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Simple socketing

Knut Mathiesen

7/12/2006 9:32:00 PM

Hi there, I recently started with Ruby and I am trying to make a very
simple irc bot, but I am having some slight problems though.

This is what I came up with:

require 'socket'
class Irc
def connect(server, port = 6667)
@socket = TCPsocket.new(server, port)
end
def to_server(text)
@socket.gets(text)
return true
end
def from_server()
return @socket.puts
end
end
irc = Irc.new
irc.connect("irc.homelien.no", 6667)
irc.to_server('NICK: testbot')
irc.to_server('USER: testbot "" "irc.efnet.net" :testbot')
go = true
while go == true
if (text = irc.from_server)
puts(text)
end
end


Doesn't work though, I just get the loop.

--
Posted via http://www.ruby-....

1 Answer

Phillip Hutchings

7/12/2006 9:50:00 PM

0

> def to_server(text)
> @socket.gets(text)
> return true
> end
> def from_server()
> return @socket.puts
> end

You've got gets and puts the wrong way around. Read them as Get String
and Put String, gets reads from the socket and puts writes to it.

Also, there's a protocol error there, you want to_server to read like this:

def to_server(text)
@socket.puts(text.to_s+"\r\n") # The line breaks are important, must be CRLF.
end

--
Phillip Hutchings
http://www.sit...