From: Clemens Wyss Date: 2009-05-18T14:39:01+09:00 Subject: Re: "Too many open files - socket(2)" when invoking Socket.new Dear Sandor, I don't see why your exception handling code should be of any help. The exception per se is the problem. Why (on XP embedded only) do I get Too many open files - socket(2) (Errno::EMFILE) on the line socket = Socket.new( AF_INET, SOCK_STREAM, 0 ) ? Also: opening the very same port with a simple VB App works, even on XP embedded... Still any help/advice appreciated Clemens Sandor Szücs wrote: > On 13.05.2009, at 16:41, Clemens Wyss wrote: > >> Given the follwing code snippet: >> >> >> require 'socket' >> include Socket::Constants > begin >> >> socket = Socket.new( AF_INET, SOCK_STREAM, 0 ) >> sockaddr = Socket.pack_sockaddr_in( 1313, 'localhost' ) >> socket.bind( sockaddr ) >> socket.listen( 5 ) >> client, client_sockaddr = socket.accept >> client.puts "Hello from script one!" >> puts "The client said, '#{client.readline.chomp}'" >> client.puts "Hello from script one!" > ensure >> >> socket.close > end > > > Try to add these statements in your code and reboot your box, > then it should not happen. > >> On my WinXP development machine this script runs as expected. >> Running it >> on a WinXpEmbedded machine throws a >> Too many open files - socket(2) (Errno::EMFILE) >> exception on the line >> socket = Socket.new( AF_INET, SOCK_STREAM, 0 ) >> What could cause this exception? > > > Too many open files for your OS results in such an exception. > > regards, Sandor > Sz�cs -- Posted via http://www.ruby-forum.com/.