A socket is defined as one endpoint of a two-way communication link
between two programs running on the network. A socket is bound to a port
number so that the TCP layer can identify the application that data is
destined to be sent.
Normally an FTP server runs on a specific machine and has a socket
that is set to a specific port number. The server mainly waits and
listens to the socket for a client to make a connection request. The
client makes a connection request by trying to meet with the server on
the server's machine and port. If everything goes well, the server
accepts the connection. Upon acceptance, the server gets a new socket
bound to the same port. It needs a new socket so that it can continue to
listen to the original socket for connection requests from other
clients while tending to the needs of the currently connected client. On
the client side, if the connection is accepted, a socket is
successfully created and the client can use the socket to communicate
with the server. The client and server can now communicate by writing to
or reading from their sockets.
A socket error can occur if one or more of the above conditions are
not met or something is blocking communication between the client and
server (e.g. firewall, anti-virus). Additionally, a client connection
can already be established with a server when a socket error occurs such
as in cases when the network connection goes down or the host that the
client connects to suddenly crashes or reboots.
Common FTP Socket Error Codes
- 11001 - Host not found.
Check that the hostname or IP address has been entered correctly.
- 11004 - Valid name, no data record of requested type.
This error generally indicates that the specified FTP server name is
incorrect or not specified. Try entering the hostname or IP address, not
a URL (e.g. if ftp://server.domain.com/ is entered, then change it to
the shared ip address). Another possibility is that connection is
blocked by a firewall. Try temporarily turning off the Windows firewall
or any other software firewall you are running.
- 10061 - Connection refused.
The hostname is correct, but the FTP server is not listening on the
port, there is no FTP server running, or a firewall is blocking the
- 10093 - Connection failed.
This can happen when the network connection goes down, e.g. the FTP server is no longer connected to the network.
- 10039 - Destination address required.
There may be a problem getting the IP address for the hostname. If you
have entered an IP Address, try entering a server and domain name
instead (e.g. server.domain.com). Another possibility is that connection
is blocked by a firewall. Try temporarily turning off any firewall you
- 10052 - Network dropped connection on reset.
The host you were connected to crashed and rebooted. Try reconnecting at a later time.
- 10054 - Connection reset by peer.
Basically, an existing connection was forcibly closed by the remote
host. This normally results if the peer application on the remote host
is suddenly stopped, the host is rebooted or the remote network was
- 10022 - Invalid argument.
Some invalid argument was somehow supplied. In some instances, it also
refers to the current state of the socket (e.g. socket is not
listening). Also, a firewall running on the host or client machine can
be blocking transmission.
Along with the errors listed above, there are several other socket
errors that can possibly occur. If you are receiving a socket error code
that is not listed above, please refer to the following MSDN site for a
complete listing: Window Sockets Error Codes