I'm getting the above error message when I try and run the daemon. It also states "error read in tcp s". Can anyone explain how to fix this? Thanks.
2 Answers
There are two main reasons a program can not bind to a socket:
the port is already used: typically, for the Monero daemon, this means another monerod is already running. You can check whether monerod is running by looking at the process list (ps, top, or other tool), or whether monerod or another program is already bound on that socket using netstat -ntpa (flags may vary based on netstat variant used). The fix for this is to stop the program currently using that port, and try again (or, if it's already monerod, do nothing, since it's already running)
the kernel or other software controls binding and denies the attempt: this happens on Windows, where firewall and/or antivirus software can be set to prevent software (or unprivileged users) from setting up a server process on the machine, or on Linux (and maybe Windows) when trying to find to a privileged port (below 1024). monerod's default P2P port is not privileged, however, but Windows might have different rules for this. The fix for this is to configure the kernel/firewall/antivirus to allow such access.
trying releasing all the binds by running the following in a command prompt
net stop winnat
net start winnat