EOF means End of File. What you usually do when reading from a file is read "until EOF(1)" which means you read until End of File == True.
Reading from a network socket is (in most languages) very much like reading from a file. A packet is often terminated with the same character as a file (ascii character 0) so when you read a socket you can read until EOF(1).
I'm guessing you do something like this for your main loop:
//read incoming data
The above is all well and good, except that it seems either serproxy or your flash application ends each packet with the ascii character 0 which means, to your program, EOF is true and thus the loop is exited.
I have very little experience with serproxy myself, as the version I tried opened the serial connection every time a network connection (like from your flash app) was created, and closed it when the network connection was closed. This meant that Arduino restarted, complete with the 5 second bootloader delay, every time I needed to connect.
Ok, that was way more than I was planning to write, but if I were you I'd check to see if serproxy keeps the serial connection open at all times. Try to write a simple arduino sketch that simply returns any serial data it recieves, fire up serproxy and connect to it with telnet. If everything works you should see whatever you type echoing back to you from the arduino, via serproxy. If this works, you need to see if your flash application sends character 0 after each package.
Ah, also.. I seem to remeber something about serproxy (for linux) having different parameters with regards to network behaviour. Do a "serproxy --help" to see what the parameter for changing network behaviour is. I don't remember properly, sorry, but I know there is something there to make it just pass everything right through (including character 0).