If any of you have any advice for this frustrated programmer please let me know.
Yes. While I didn't read any of your code except to see its length, I have one
fundamental rule regarding net connections:
Don't invent a protocol if an existing one will do.
In particular, have you looked to see if you can use HTTP as your transport layer?
There are many advantages to that. If you need clean RPC, you can layer SOAP on
top of HTTP, otherwise you can simply use the HTTP content as your payload, or
encode everything in the virtual URL. Setting up an HTTP server is as simple
as a few lines of code, as illustrated in
HTTP::Daemon's documentation.
One cool advantage is that HTTP can tunnel through HTTP proxies, but your random
protocol cannot. Another is that you can set up an "administrative interface"
on your mini-server and talk to it with a browser.
-- Randal L. Schwartz, Perl hacker