Today I was fiddling around with the Android Emulator and was pretty much stuck with the same exact error "cannot bind socket".
The reason behind this error is because, the local port "8080" is already being used by some other application.
Check if there is any TomCat instance running on your machine ?
I quickly learnt that my android emulator itself was running on 5555 port which was the reason behind the "Cannot bind socket" error.
I quickly changed my port to another port, and things were working fine after that.
So if you see a "cannot bind socket" error, then it means "the local port that you are trying to forward from" is "BEING" used by some other application.
Hope that helps !