I had this problem a few years ago - though it is rare. My limit was more like 20 file descriptors, rather than 255. I was writing supporting code for an app. which was ported from a mainframe, and a redesign was not an option.
in reply to file handle limitation of 255
The limit is associated with the process, so what I did was to spawn 'worker' processes to do the IO for me, and some of the processing. Essentially I split the task, with a management process which co-ordiinated everything. It was a redesign for my part of the app., but it worked very well and was scalable. Eventually I extended it to allow local processing and IO on different machines (communication used INET sockets).
So, to beat a limitation of a single process, just create more!