Patent ID: 8407530

Claim:
A method comprising: providing a client device that provides an application; providing, by the computing device, an application that uses multiple protocol stacks to communicate with a server, wherein if an attempt by the application to communicate with the server using a first one of the protocol stacks times out, the application performs a timeout activity without waiting for a timeout period to expire when the application reaches a point where the application would attempt to communicate with the server using a second one of the protocol stacks; determining whether the attempt by the application to communicate with the server using the first protocol stack timed out; and adding the server to an unreachable servers list when the attempt by the application to communicate with the server using the first protocol stack timed out; and automatically removing the server from the unreachable servers list when the server has been listed on the unreachable servers list for more than a maximum time limit; wherein providing the application comprises: providing a stack request to the second protocol stack when the application reaches the point where the application would attempt to communicate with the server using the second protocol stack; receiving, if the server is listed on the unreachable servers list, a timeout stack response from the second protocol stack in response to the stack request before the timeout period expires, wherein the timeout stack response is a stack response comprising a timeout error; receiving, if the server is not listed on the unreachable servers list and the client device failed to receive a response message within the timeout period, the timeout stack response from the second protocol stack in response to the stack request, wherein the response message is a message sent by the server in response to a message sent to the server by the second protocol stack in response to the stack request; performing the timeout activity in response to receiving the timeout stack response; and performing a different activity in response to receive a stack response that does not comprise a timeout error.