On 2002.05.11, Kontra, Gergely <kgergely / mlabdial.hit.bme.hu> wrote:
> 
> It when a client connects, a point should appear on the server's canvas,
> and it can be make moved by the client's control panel.

Looking at your code in ServerDisp.rb:

     36     nsock = select(socks.keys|[@server],nil,nil,10)
     37     if nsock == nil or nsock[0]==nil or nsock[0]==[]# why could
it happen?
     38       puts ":("
     39       next
     40     end

The answer to the question on line 37 is that you're specifying
a 10 second timeout.  If you don't get a new connection or
no connected client sends you data or disconnects and sends
an eof, after 10 seconds select will return with nsock
being [[], [], []].

I think the problem under Win32 is that line endings are not
\n like they are in Unix/Linux, but \r\n.  So:

     52       else # just another line
     53         if socks[s].processLine(s.gets)==false
     54     socks.delete(s)
     55     puts("#{s} is gone")
     56         end

Replace s.gets with s.gets.chop, see if that makes a
difference.

-- Dossy

-- 
Dossy Shiobara                       mail: dossy / panoptic.com 
Panoptic Computer Network             web: http://www.panoptic.com/ 
  "He realized the fastest way to change is to laugh at your own
    folly -- then you can let go and quickly move on." (p. 70)