Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Thread Question
Drew Olson
2/6/2007 6:51:00 PM
As posted earlier, I'm working on a simple chat server. However, I seem
to be confused as to how I'm supposed to spawn a new thread. Let's
suppose I want to create a new Thread where an instance of Foo listens
for messages on a socket and echos them. Is this correct? I have similar
code in my server that I'm working on, but it is not functioning
properly. It seems that my infinite while loops are blocking the rest of
the code after the '#keep doing more stuff here' section. Confusing...
mysocket = TCPSocket('someaddress.com',1000);
Thread.new(mysocket){|socket| Foo.new(socket).listen}
# keep doing more stuff here
...
...
...
class Foo
def initialize(socket)
@socket = socket
end
def listen
while true
message = socket.gets
puts message
end
end
end
--
Posted via
http://www.ruby-...
.
1 Answer
Brian Candler
2/6/2007 9:05:00 PM
0
On Wed, Feb 07, 2007 at 03:50:35AM +0900, Drew Olson wrote:
> As posted earlier, I'm working on a simple chat server. However, I seem
> to be confused as to how I'm supposed to spawn a new thread. Let's
> suppose I want to create a new Thread where an instance of Foo listens
> for messages on a socket and echos them. Is this correct? I have similar
> code in my server that I'm working on, but it is not functioning
> properly. It seems that my infinite while loops are blocking the rest of
> the code after the '#keep doing more stuff here' section. Confusing...
>
> mysocket = TCPSocket('someaddress.com',1000);
> Thread.new(mysocket){|socket| Foo.new(socket).listen}
> # keep doing more stuff here
I think you forgot to call 'accept' in a loop, which returns a new socket
for each connection, and then start a new thread for each one.
For a concrete, working example see
http://wiki.rubygarden.org/Ruby/page/show/Singlet...
and scroll down to where it says "class Pop3Server"
For general information on threads see
http://www.rubycentral.com/book/tut_th...
HTH,
Brian.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Thread Question
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password