SOCKET_ERROR [10054]

F

fniles

We are using VB.NET 2005 and a 3rd party Socket .net component
(socketwrench) to send messages to another program. This other program is
written in C++ 6.0.
There are 6 of this VB.NET programs and 6 of the C++ programs running on 6
different servers

We had the same problem last week and this week where around the same time
all 6 programs could not send messages to each other.
All 6 of the C++ programs got the error message "Socket Error [10054]" when
receiving from or sending a message to the VB.NET programs.
All the VB.NET program still think that it is connected to the C++ programs,
and when it sends a message to the C++ program it did not get any error
message, as if the connection to the C++ program still good.
What can cause this "Socket Error [10054]" error around the same time for
all 6 connections ?
Thank you.
 
P

PvdG42

fniles said:
We are using VB.NET 2005 and a 3rd party Socket .net component
(socketwrench) to send messages to another program. This other program is
written in C++ 6.0.
There are 6 of this VB.NET programs and 6 of the C++ programs running on 6
different servers

We had the same problem last week and this week where around the same time
all 6 programs could not send messages to each other.
All 6 of the C++ programs got the error message "Socket Error [10054]"
when receiving from or sending a message to the VB.NET programs.
All the VB.NET program still think that it is connected to the C++
programs, and when it sends a message to the C++ program it did not get
any error message, as if the connection to the C++ program still good.
What can cause this "Socket Error [10054]" error around the same time for
all 6 connections ?
Thank you.
Try plugging "Socket Error [10054]" into Google Groups search. You'll find
numerous hits, some of which may be helpful to you.
 
M

mayayana

This might be useful:


10004 Interrupted system call.
10009 Bad file number.
10013 Permission denied.
10014 Bad address.
10022 Invalid argument.
10024 Too many open files.
10035 Operation would block.
10036 Operation now in progress. This error is
returned if any Windows Sockets API
function is called while a blocking
function is in progress.
10037 Operation already in progress.
10038 Socket operation on nonsocket.
10039 Destination address required.
10040 Message too long.
10041 Protocol wrong type for socket.
10042 Protocol not available.
10043 Protocol not supported.
10044 Socket type not supported.
10045 Operation not supported on socket.
10046 Protocol family not supported.
10047 Address family not supported by protocol family.
10048 Address already in use.
10049 Cannot assign requested address.
10050 Network is down. This error may be
reported at any time if the Windows
Sockets implementation detects an
underlying failure.
10051 Network is unreachable.
10052 Network dropped connection on reset.
10053 Software caused connection abort.
10054 Connection reset by peer.
10055 No buffer space available.
10056 Socket is already connected.
10057 Socket is not connected.
10058 Cannot send after socket shutdown.
10059 Too many references: cannot splice.
10060 Connection timed out.
10061 Connection refused.
10062 Too many levels of symbolic links.
10063 File name too long.
10064 Host is down.
10065 No route to host.
10091 Returned by WSAStartup(), indicating that
the network subsystem is unusable.
10092 Returned by WSAStartup(), indicating that
the Windows Sockets DLL cannot support
this application.
10093 Winsock not initialized. This message is
returned by any function except
WSAStartup(), indicating that a
successful WSAStartup() has not yet been
performed.
10101 Disconnect.
11001 Host not found. This message indicates
that the key (name, address, and so on)
was not found.
11002 Nonauthoritative host not found. This
error may suggest that the name service
itself is not functioning.
11003 Nonrecoverable error. This error may
suggest that the name service itself is
not functioning.
11004 Valid name, no data record of requested
type. This error indicates that the key
(name, address, and so on) was not found.
 
E

expvb

fniles said:
We are using VB.NET 2005 and a 3rd party Socket .net component
(socketwrench) to send messages to another program. This other program is
written in C++ 6.0.
There are 6 of this VB.NET programs and 6 of the C++ programs running on 6
different servers

We had the same problem last week and this week where around the same time
all 6 programs could not send messages to each other.
All 6 of the C++ programs got the error message "Socket Error [10054]"
when receiving from or sending a message to the VB.NET programs.
All the VB.NET program still think that it is connected to the C++
programs, and when it sends a message to the C++ program it did not get
any error message, as if the connection to the C++ program still good.
What can cause this "Socket Error [10054]" error around the same time for
all 6 connections ?
Thank you.

How the TCP/IP connections are made? If it's to a single TCP/IP server
process, and that process crashed, or terminated by Task Manager, the other
side gets that error.

Another reason if you have a router between Client/Server that implements
NAT(To share the same IP), and it was reset or crashed, but I am not sure if
you get the same error code, or different one. Routers that implement NAT
have to maintain internal tables that are lost when rebooted. Regular
routers(on the Internet) don't have such tables so connections are not
terminated when a router is reset if it came back up quickly enough, or
another route was taken before a timeout.

http://en.wikipedia.org/wiki/Network_Address_Translation
 
F

fniles

Thank you for all replies.

The VB.NET program is the client program that connects to the C++ program
using SocketWrench .net component (a socket component).
Each of one the 6 VB.NET programs are connected to C++ program on different
servers with different IPs.
I will ask our network administrator if we implement NAT.

According to MS website, it says socket error 10054 occurs when "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, the host or remote network interface is disabled, or the remote
host uses a hard close (see setsockopt for more information on the SO_LINGER
option on the remote socket). This error may also result if a connection was
broken due to keep-alive activity detecting a failure while one or more
operations are in progress."

So, does it it mean that the C++ program (the server program) forcibly
closed the connection to the VB.NET program (the client program) ?


expvb said:
fniles said:
We are using VB.NET 2005 and a 3rd party Socket .net component
(socketwrench) to send messages to another program. This other program is
written in C++ 6.0.
There are 6 of this VB.NET programs and 6 of the C++ programs running on
6 different servers

We had the same problem last week and this week where around the same
time all 6 programs could not send messages to each other.
All 6 of the C++ programs got the error message "Socket Error [10054]"
when receiving from or sending a message to the VB.NET programs.
All the VB.NET program still think that it is connected to the C++
programs, and when it sends a message to the C++ program it did not get
any error message, as if the connection to the C++ program still good.
What can cause this "Socket Error [10054]" error around the same time for
all 6 connections ?
Thank you.

How the TCP/IP connections are made? If it's to a single TCP/IP server
process, and that process crashed, or terminated by Task Manager, the
other side gets that error.

Another reason if you have a router between Client/Server that implements
NAT(To share the same IP), and it was reset or crashed, but I am not sure
if you get the same error code, or different one. Routers that implement
NAT have to maintain internal tables that are lost when rebooted. Regular
routers(on the Internet) don't have such tables so connections are not
terminated when a router is reset if it came back up quickly enough, or
another route was taken before a timeout.

http://en.wikipedia.org/wiki/Network_Address_Translation
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top