kazaam / oleco.net wrote:
> Hi,
> I'm writing a little tcp-client which connects to a tcp-server, sends a command and recieves an answer. If I do something like that:
> 
> #!/usr/bin/env ruby
> 
> $VERBOSE=true
> 
> require 'socket'
> ...
> begin
> 	socket = TCPSocket.new($ip,$port) 
> rescue
> 	puts "error: #{$!}"
> 	exit 1
> end
> 
> socket.print command
> 
> answer=socket.gets
> 
> socket.close
> 
> 
> It works if the server sends just one line. But I don't know how many lines the server answers. So I tried something like that:
> 
> answers=[]
> while answer=socket.gets
> 	answers<<answer
> end
> 
> But this results in the while-loop never ending. Even if just one line is the answer the while loop does simply never end :( Any idea how to do this?

Try socket.gets(nil) -- that waits for EOF instead of newline.

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407