INFO: Winsock Ignores ICMP Port Unreachable Control Messages

This article has been archived. It is offered "as is" and will no longer be updated.
ICMP Port Unreachable control messages are ignored by the Winsock layer on versions of Windows as specified applies to section. If Winsock UDP application is sending datagram to a host application that has already gone, the host replies with ICMP Port Unreachable control message. If the Winsock application is then blocking on receiving datagram from the peer, it will not unblock on receiving the ICMP Port Unreachable control message. If the application needs to detect the existence of the UDP peer under such scenarios, it may use nonblocking socket or overlapped socket with timeout and retries.
More information
On Windows 2000, a feature is added to unblock Winsock application and returning 10054 (WSA_ECONNRESET) through WSAGetLastError if ICMP Host Unreachable control message is received for a bound socket.

For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
263823 WinSock Recvfrom() Now Returns WSAECONNRESET Instead of Blocking or Timing Out

Article ID: 245442 - Last Review: 01/11/2015 03:11:13 - Revision: 3.0

  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows 95
  • kbnosurvey kbarchive kbdswnet2003swept kbapi kbinfo kbnetwork kbwinsock KB245442