[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Ruby/tk slow threads?

Tim Mcd

1/18/2009 3:59:00 AM

My code opens up a text window with an entry field. The text area gets
populated with the first spurt of text from the MUD, but then doesn't
update! Is my entry field not actually sending text to the server, or
are the threads for receiving text from the MUD going slow?

require 'tk'
require 'socket'

connection = TCPSocket.new("dark-legacy.com", 9898)

frame = TkFrame.new.pack(:expand=>true, :fill=>:both)
entry = TkEntry.new(frame).pack(:side=>:bottom, :fill=>:x)
t = TkText.new(frame) do
yscrollbar(TkScrollbar.new(frame).pack(:side=>:right, :fill=>:y,
:expand=>false))
pack(:side=>:left, :fill=>:both, :expand=>true)
end

killed = false
Thread.new do ||
begin
while killed == false
inp = connection.recv(100)
t.insert(:end, inp).see(:end)
end
rescue StandardError
puts $!
end
end

entry.bind('Return') do ||
connection.write(entry.value)
entry.delete(0, :end)
end

entry.focus

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

2 Answers

Hidetoshi NAGAI

1/22/2009 4:57:00 AM

0

From: Tim Mcd <tmcdowell@gmail.com>
Subject: Ruby/tk slow threads?
Date: Sun, 18 Jan 2009 12:59:18 +0900
Message-ID: <238601f32e2265505349c43b58ba1c45@ruby-forum.com>
> inp = connection.recv(100)
> t.insert(:end, inp).see(:end)

t.insert(:end, inp).see(:end) unless inp.empty?

> entry.bind('Return') do ||
> connection.write(entry.value)

connection.write(entry.value + "\n") # ???

Though I don't know the protocol of your server,
does the server need "Return" at end of a command line?
--
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)

Tim Mcd

1/22/2009 5:02:00 AM

0



Hmm, thats possible...
--
Posted via http://www.ruby-....