Could not register TCP channel: System.Net.Sockets.SocketException (0x80004005): Only one usage of each socket address (protocol/network address/port) is normally permitted

I have observed the above error message a couple of times on windows xp machines when the test agent service is restarted. The service does not start due to this error and in test agent log file following stack trace is observed.

ASEEMB-SPEARHEA\QTAgentService.exe, AgentService: Could not register TCP channel: System.Net.Sockets.SocketException (0x80004005): Only one usage of each socket address (protocol/network address/port) is normally permitted
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at System.Net.Sockets.TcpListener.Start(Int32 backlog)
at System.Net.Sockets.TcpListener.Start()
at System.Runtime.Remoting.Channels.ExclusiveTcpListener.Start(Boolean exclusiveAddressUse)
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.StartListening(Object data)
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel()
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback)
at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)
at Microsoft.VisualStudio.TestTools.Agent.AgentService.RegisterTcpChannel(String bindToSpecificAddress)
E, 1880, 4, 2009/10/28, 07:05:57.868, ASEEMB-SPEARHEA\QTAgentService.exe, AgentService: Exception occurred while publishing AgentService object. Microsoft.VisualStudio.TestTools.Exceptions.EqtException: Could not register channel on port 6910. Only one usage of each socket address (protocol/network address/port) is normally permitted
at Microsoft.VisualStudio.TestTools.Agent.AgentService.RegisterTcpChannel(String bindToSpecificAddress)
at Microsoft.VisualStudio.TestTools.Agent.AgentService.CreateChannels(String bindToSpecificAddress)
at Microsoft.VisualStudio.TestTools.Agent.AgentService.OnStart(String[] args)
E, 1880, 4, 2009/10/28, 07:05:58.040, ASEEMB-SPEARHEA\QTAgentService.exe, AgentServiceBase: Exception occurred while starting AgentService. Microsoft.VisualStudio.TestTools.Exceptions.EqtException: Test agent service could not register with the test controller. Could not register channel on port 6910. Only one usage of each socket address (protocol/network address/port) is normally permitted
at Microsoft.VisualStudio.TestTools.Agent.AgentService.OnStart(String[] args)
at Microsoft.VisualStudio.TestTools.Agent.AgentServiceWrapper.OnStart(String[] args)
at Microsoft.VisualStudio.TestTools.Agent.AgentServiceBase.OnStart(String[] args)
I, 1880, 1, 2009/10/28, 07:05:58.681, ASEEMB-SPEARHEA\QTAgentService.exe, AgentServiceBase: exiting.

This error seems to indicate that the socket on which test agent wants to listen is not available, probably because the old socket was not closed properly by the underlying layers. To come out of this error, I just restart the machine & it works.