When using this library, I found a feature that needed to be added. It was the ability to use active connections behind a firewall where the external IP address lied outside of the box. What happens is the library sends a PORT command but sends the internal IP address which won't work (ie. PORT 10,10,249,70,12,34). Also, there is was no way to control which port to use since the network guys didn't want to open up every single port, exposing the box unnecessarily. So, I only had to change one file to add the functionality which was surprisingly easy. Basically, there are 4 functions (2 setters/2 getters) which make this so easy. 1 pair of functions deals with setting/getting the port address (ie. the external address) and the other sets/gets the port range. I added a little more internal functionality to the file on my work PC, so it's not here, but can be easily added as well. While I was testing the code, I sometimes got an error when connecting because the port was in use. So, I made the function try 5 times before actually throwing an error. In conclusion, I have attached the file for everyone's enjoyment.